能力值:
( LV11,RANK:190 )
|
-
-
2 楼
因为python输出的shellcode不应该是nc的参数,而是nc连接以后stdin输入的数据
不加cat相当于执行了
nc pwnable.kr 9000 aaaaaaaa.......
这条命令,显然不是你想要的结果,因为nc没有aaaaaa......这个参数选项
加上cat相当于
第一步:
cat读取标准输出(也就是那一段shellcode)
第二步:
nc pwnable.kr 9000
此时nc阻塞在stdin等待输入(向9000端口发送的数据)
第三步:
cat将之前的stdout写入到现在的stdin
你主要是将参数和输入的数据的含义搞混了
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢,总算弄明白了,就是python的输出不是标准输出是吧?
|
能力值:
( LV11,RANK:190 )
|
-
-
4 楼
.........
不是的,python就是标准输出
再仔细看下我之前的回答吧
不是是不是标准输出的问题,而是在什么时候把输出作为输入的问题
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
哦哦,管道不是都把前面的输出作为后面的stdin输入吗
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我搜索了下,xargs是用来拆分为后面一条的命令参数
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
又遇到了这个问题,找了下解释,好像是说不用cat的话仍然留在外层shell这里,使用cat就可以进入system启动的shell
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
现在总算明白了,使用cat命令不加参数会接收标准输入并持续输出,由于输入shellcode后程序仅仅调用shell,没有对应的shell命令,需要获得持续的输入,如果不加后面的cat,调用shell后没有命令可执行
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
我也是看这篇帖子才明白
|
|
|