能力值:
( LV5,RANK:60 )
|
-
-
2 楼
只开了nx?那试试ret lib或rop。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
但是这个应该是个纯静态的elf(file了一下 貌似有statically linked和stripped),又没有符号的话,怎么构造system("\bin\sh")的rop链呢?望再指点一下
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
貌似需要 针对特定的libc 弄sig文件。。就strings出glibc-ld.so.cache1.1。貌似都对应不到glibc的库版本。
|
能力值:
( LV6,RANK:90 )
|
-
-
5 楼
静态elf文件主要是用来分析漏洞的,楼上说的ret2libc其实就是system("/bin/sh"),system地址需要libc版本,一般CTF官方都会给的,实在不行就暴力跑一下,有libc版本就能算出system相对基址偏移,然后在题目中leak出libc基址加上偏移就是system地址了
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
因为libc是被静态链接在程序内,符号又被剔除了,所以看了网上得确定glibc的版本但是官方的程序里找不太到相关的信息了,就在程序字符串看到glibc-ld.so.cache1.1,再去查查看能不能对应起来。谢谢解答,我再去研究试试。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
可以用工具来快速ROP,例如ROPgadget
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
使用了已经生成了gadget文件,但是现在的难点就是确定不了system库函数静态编译在程序的地址是多少。。 得再想想办法
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
没能生成INT 80的gadget么?执行系统调用呗,不一定非得找system函数吧。。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
因为那个ctf题是socat把本地漏洞程序转发出来的,需要反弹出Shell拿flag,我只知道system可以。。系统调用 是不是要进内核了?因为主要是执行些shell命令
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
学一下pwntools会好点,需要用rop链泄露多个函数信息,之后可以找一个查库的类型的网站,看可不可以查到,之后就自己算了。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
ctf pwn题大部分都是socat把本地漏洞程序转发出来的,需要反弹出Shell拿flag。。。
调用system属于ret2libc,只是拿shell的一种方法,这道题静态编译的话显然不适合用ret2libc。
尝试构造如下的rop,11号系统调用,execve(/bin/sh),不需要进内核:
XOR EAX,EAX
PUSH EAX
PUSH 68732F6E hs/n
PUSH 69622F2F ib// //bin/sh
MOV EBX,ESP
PUSH EAX
XCHG CL,AH
MOV AL,0B EAX:系统调用号 EBX:Filename ECX:Flag EDX:Mode
INT 80
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
嗷嗷明白了,基本我可以搞定了。麻烦想问问linux下的pwn该怎么入门?有什么学习资料吗
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
看蒸米的博客里面有Linux rop系列,很详细,然后做几道题就可以了
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
好的,谢谢指点
|
能力值:
( LV12,RANK:280 )
|
-
-
16 楼
静态链接直接jmp magic system就可以了
|
|
|