安恒429|复赛 web write up && 决赛经验
复赛给了web 2 350 原本是想考一个SSRF利用gopher去搞定一个fastcgi的外联端口,执行命令
具体的文章
http://zone.wooyun.org/content/1060
http://drops.wooyun.org/web/9845
然而出题人没把好关 长亭3分钟秒掉这道题后基本就猜到有奇解
那么其实就是简单的file协议 file://index.php 拿到了flag
然后一开始卡住的web 1 300呢,是通过注册超长字符串的用户,重复注册爆出dumplicate entry
得到管理员的hash admin_7365598732 24461a3ef270c652949f5fc37f37fcb2
解密后得到RGoN7r}G8lnrYBAX6n
登陆管理页,有一个删除文件的功能,传递的id参数可以用报错注入payload
+and(select+1+from(select+count(*),concat((select+table_name+from+information_schema.tables+limit+0,1),floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a)%23
得到flag,然后居然还是一血。大概因为注起来很麻烦吧。
凭借着自己拿下的650+d神的500以及外校队友拿下的密码学题目 7th进入决赛。
===========================================================================
帅不过三秒 下午决赛开始被血虐
送走大寸自己稍微有点小低落,然后就被抓了先手
web我一开始没审计代码的时候,发现了至少3个点
这里用黑名单进行过滤,导致php5等后缀可以绕过
另外就是前台文章的一个root注入点
然而修复的时候使用的正则表达式/select.*from/i
算是最大的败笔,没有加s修饰符的话,用%0a是可以绕过的。
在注入的时候into outfile一直会把前面的用户数据读进去,一开始想的方法是
用户名注册为 然后导出
得到了wildwolf的webshell。但后来由于插内存马的时候报错,导致整个数据废掉了。
后来用union select来覆盖前面的数据,重新导出了,但是于事无补,自己也只拿到了200多分。
期间pwn和web服务一直被人打挂掉,导致了巨额失分。
最后今天回来的时候重新写了一份php的自动化防护脚本,希望以后攻防赛有机会用上
上一篇: php多线程 初探PHP多进程