pwnable.kr-input-witeup
查看代码,有5个stage,一一解决掉就能愉快看到flag了。
第一个stage:

解决方案:


第二个stage:

解决方案:
使用了os.pipe()函数功能,os.pipe()用于创建一个管道,返回一对文件描述符(r,w)分别为读和写。


第三个stage:

解决方案:

第四个stage:

解决方案:

第五个stage:

解决方案:

解决方案全代码:
#!/usr/bin/python
import subprocess
import os
import socket str1=['a']*100
str1[0]='./input'
str1[ord('A')]=""
str1[ord('B')]="\x20\x0a\x0d"
str1[ord('C')]="65530" stdinr,stdinw=os.pipe()
os.write(stdinw,"\x00\x0a\x00\xff")
stderrr,stderrw=os.pipe()
os.write(stderrw,"\x00\x0a\x02\xff") os.environ["\xde\xad\xbe\xef"]="\xca\xfe\xba\xbe" with open('./\x0a','wb') as fd:
fd.write("\x00\x00\x00\x00") subprocess.Popen(str1,stdin=stdinr,stderr=stderrr,env=os.environ) obj=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
obj.connect(('127.0.0.1',65530))
obj.send("\xde\xad\xbe\xef")
obj.close()
这并没有结束,登上远程主机发现没有用,查看目录权限,

tmp目录可写,就进去通过ln -s建立flag和input的软连接,并创建python脚本愉快地执行,完成。
pwnable.kr-input-witeup的更多相关文章
- pwnable.kr input解题记录
pwnable input解题记录 给了源码如下: #include "stdio.h" #include "unistd.h" #include " ...
- 【pwnable.kr】input
这道题是一道一遍一遍满足程序需求的题. 网上其他的题解都是用了C语言或者python语言的本地调用,我想联系一下pwntools的远程调用就写了下面的脚本, 执行效果可以通过1~4的检测,到最后soc ...
- pwnable.kr之input
连接到远程服务器:ssh input2@pwnable.kr -p2222 查看题目所给的代码,根据题目的要求我们要给出所有符合条件的输入才能拿到flag,本来想在输入上动点歪脑筋,结果输入有字节数的 ...
- pwnable.kr详细通关秘籍(二)
i春秋作家:W1ngs 原文来自:pwnable.kr详细通关秘籍(二) 0x00 input 首先看一下代码: 可以看到程序总共有五步,全部都满足了才可以得到flag,那我们就一步一步来看 这道题考 ...
- 【pwnable.kr】 [simple login]
Download : http://pwnable.kr/bin/login Running at : nc pwnable.kr 9003 先看看ida里面的逻辑. 比较重要的信息时input变量再 ...
- 【pwnable.kr】 mistake
又一道pwnable,我还没放弃.. ssh mistake@pwnable.kr -p2222 (pw:guest) 源代码如下: #include <stdio.h> #include ...
- 【pwnable.kr】fb
这是pwnable.kr的签到题,记录pwn入门到放弃的第一篇. ssh fd@pwnable.kr -p2222 (pw:guest) 题目很简单,登录上了ssh后,发现了3个文件:fd,fd.c, ...
- pwnable.kr之simple Login
pwnable.kr之simple Login 懒了几天,一边看malloc.c的源码,一边看华庭的PDF.今天佛系做题,到pwnable.kr上打开了simple Login这道题,但是这道题个人觉 ...
- pwnable.kr的passcode
前段时间找到一个练习pwn的网站,pwnable.kr 这里记录其中的passcode的做题过程,给自己加深印象. 废话不多说了,看一下题目, 看到题目,就ssh连接进去,就看到三个文件如下 看了一下 ...
- pwnable.kr bof之write up
这一题与前两题不同,用到了静态调试工具ida 首先题中给出了源码: #include <stdio.h> #include <string.h> #include <st ...
随机推荐
- python生成linux命令行工具
您是否也曾一直想生成类似cd, cat等小巧/迷人/实用的小工具作为系统命令或者将python程序打包为exe进行分发?ok,机会来了.利用python 的argparse 和 pyinstaller ...
- 为什么比特币和以太坊未必真得比EOS更去中心化?
在区块链行业里,有两派人一直在争论:一个是以比特币和以太坊为首的社群,另一个是以EOS为首的社群.这两群人一直在争论谁才是真正的未来,双方都认为自己这边更有未来.其中EOS抗争的重点就是100万TPS ...
- Creating and using a blendspace in c++
转自:https://forums.unrealengine.com/development-discussion/c-gameplay-programming/104831-creating-and ...
- 地下产链——创建安装包捆绑软件(Bundled software)
Bundled_Software 首先,因为个人知识不足的情况下,无法进行EXE文件捆绑机的制作说明,所以有需要请转至http://www.cnblogs.com/qintangtao/archive ...
- MyBatis中使用#和$书写占位符有什么区别?
#将传入的数据都当成一个字符串,会对传入的数据自动加上引号:$将传入的数据直接显示生成在SQL中.注意:使用$占位符可能会导致SQL注射攻击,能用#的地方就不要使用$,写order by子句的时候应该 ...
- axios与vue的配合使用事例,实现缓存和重复加载的控制
import Vue from "vue"; import qs from "qs"; import Store from "../vuex/stor ...
- 安卓版的pvr图片查看
public class PVRTDecompress { /* author:FormatFa mail :1758759399@qq.com date :2017-6-14 */ //modify ...
- Linux基础(学习过程记录)
常用快捷键:Tab:使用Tab键来进行命令补全,补全目录.补全命令参数Ctrl+c键来强行终止当前程序Ctrl+d 键盘输入结束或退出终端Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行Ctrl+ ...
- 15Linux_DHCP_Postfix_Dovecot_LDAP
DHCP_ Postfix_ Dovecot_ LDAP
- CSS设计中的错误大整理!
如果有人发明时间机器,那应该将这些错误纠正,不然可把前端程序猿们给还惨了.大家一起看看都有哪些CSS规则应该完善. (CSS 代码) white-space: nowrap 应该 white-spac ...