网站颜色搭配表,百度爱采购优化软件,摄影之家,免费找客户的软件目录
PWN 00
解题过程
总结归纳
PWN 01
解题过程
总结归纳
PWN 02
解题过程
总结归纳
PWN 03
解题过程
总结归纳
PWN 04
解题过程
总结归纳 CTF PWN 开始#xff01; 冲就完了 PWN 00
解题过程
ssh远程链连接
ssh ctfshowpwn.challenge.ctf.show -p28151 输…目录
PWN 00
解题过程
总结归纳
PWN 01
解题过程
总结归纳
PWN 02
解题过程
总结归纳
PWN 03
解题过程
总结归纳
PWN 04
解题过程
总结归纳 CTF PWN 开始 冲就完了 PWN 00
解题过程
ssh远程链连接
ssh ctfshowpwn.challenge.ctf.show -p28151 输入yes 再输入密码后进入远程连接等待程序结束后发现给了一个shell 得到flag 总结归纳
彩蛋题没啥说的 PWN 01
解题过程 下载附件进行分析
file查看文件类型 checksec检查文件是否开始保护可以看到文件64位而且关闭了Canary保护 使用IDA静态分析找到main函数并且F5得到伪C代码 这个程序会自动根目录下的文件本地运行pwn测试 本地根目录做个测试文件 system执行cat命令是在shell环境下的shell命令是由交互的会把执行的结果打印在shell里面
根据题目提示应该是在服务器端口上开设了一个服务nc链接就可以触发
nc pwn.challenge.ctf.show 28235 总结归纳
system执行cat命令是在shell环境下的shell命令是由交互的会把执行的结果打印在shell里面 PWN 02
解题过程
和上面一样file判断文件类型是动态链接库文件checksec文件唯独没开启Canary防护
IDA下分析可执行文件的伪C代码 运行这个程序会返回一个shell环境直接查看根目录的flag即可 总结归纳 system(/bin/sh); 工作原理是什么
/bin/sh 其实是一个软链接指向dash system()函数先fork一个子进程在这个子进程中调用/bin/sh -c来执行command指定的命令。/bin/sh在系统中一般是个软链接指向dash或者bash等常用的shell-c选项是告诉shell从字符串command中读取要执行的命令(shell将扩展command中的任何特殊字符)。父进程则调用waitpid()函数来为变成僵尸的子进程收尸获得其结束状态然后将这个结束状态返回给system()函数的调用者。
通俗的讲就是那么也就是说执行完这个后它就会返回一个shell给函数的调用者:
system(/bin/sh);这一类的我们称之为后门函数再后续利用过程中我们要尽可能找到或者构造出来 PWN 03
解题过程
file查看文件类型动态链接库64位程序
checksec查看文件保护情况全部开启
IDA中F5分析文件的伪c代码 进入case6函数 远程nc连接选择6得到flag 总结归纳
没啥说的加了点逻辑 PWN 04
解题过程
file查看文件类型动态链接库64位程序
checksec查看文件保护情况全部开启
IDA中F5分析文件的伪c代码 首先将字符串CTFshowPWN复制到s1变量中。接着使用puts函数输出字符串find the secret !。紧接着通过_isoc99_scanf函数从用户输入中读取一个字符串到s2变量中。最后通过 strcmp函数比较s1和s2的内容是否相同。如果相同则调用execve_func函数。
execve_func函数 可以看到将字符串/bin/sh”赋值给argv变量。然后将v2和v3初始化为0。通过调用execve系统调用来执行/bin/sh shell。 输入CTFshowPWN拿flag 总结归纳
execve本身并不是一个后门函数。实际上execve是一个标准的系统调用函数用于在Linux和类Unix系统中执行一个新的程序。
该函数接受三个参数:
filename :要执行的程序的文件名或路径。argv :一个以NULL结尾的字符串数组表示传递给新程序的命令行参数。envp :一个以NULL结尾的字符串数组表示新程序的环境变量。
当调用execve函数时它会将当前进程替换为新程序的代码并开始执行新程序。新程序接收argv和envp作为命令行参数和环境变量。在加入某些参数后就可以达到我们所需要的后门函数的效果。