前言
上周打了一下安恒五月赛,题目质量还行,记录一些东西。
帮帮小红花
这题应该是非预期做的 给了个裸的shell 无回显 反弹shell失败 直接
1 | cat /flag > ./res |
flag内容 make iptables great again 应该就是不让弹shell的 看了下别的师傅wp是shell命令进行延时盲注 贴一下
1 | h3zh1=$( cat /flag | cut -c %d-%d );if [ $( printf '%%d' "'$h3zh1" ) -gt %d ];then sleep %f;fi |
挺有趣
gob
上传时将文件目录穿越为/flag cookie记录了文件位置 查看头像就能拿flag
老开发
题目描述说用了orm 进去是个登陆框 后端是php 裸的sql注入 测了一下
1 | username=admin&password=admin 登陆成功 |
测试可以看到有些语法比如database()函数 select语句一旦使用就会500 /robots.txt里给了个User.php 访问可以看到是定义了一个orm实体 根据语法搜了一波应该是DQL
于是这题变成了一个裸的DQL注入的问题 具体可以看这篇文章 DQL注入
然后再去翻翻文档 DQL语法
最后payload忘了留 大概写一下 可能有错(x
1 | username=admin' and 1=(select s from user s where s.uid=12 and substring(s.password,1,1)='a') -- &password=admin 布尔盲注 |
user表uid=12时username为flag password即为flag内容
多人运动
第一步是一个order by的sql注入点 带一个巨厚的waf 最后选择的是异或符号+pow函数进行布尔盲注 字符串截取用left+right 带一个子查询 字符比较用hex函数 运算符由于+不能用 选择 - * / 结合 做的很麻烦 payload大概是这样
1 | by=^(select pow(2,hex(hex(right(left((select fuck2 from (select 1 as fuck1, 2 as fuck2 union select * from user)x limit 1,1),i),1)-num)) |
虽然其实爆破的速度还可以 但是payload确实巨麻烦 所以这里贴一个出题人的payload
1 | by=(case when right(left(( select group_concat(`1`,`2`) from (select 1,2 union select * from hint)a ),(位数)),1) in (binary(16进制数) then pow(123,123123213) else 1 end) |
还有一点是当时只想着注入得到admin的密码 没想到还有个hint表… 感觉挺坑的 hint表里留了个/source接口可以看到部分源码 最后管理员账密为
1 | admin T1Me cTRol13r |
第二步是一个golang的ssrf点 可以输入url和cookie 对url的host做了过滤 反正试了一下只有baidu.com和bing.com看到了回显 需要本地访问/getflag接口拿flag 由于第一步没有得到/source接口 所以这里测试了很久也没想到怎么绕过 host绕不过去就想着给了输入cookie的点是不是crlf 又测试了半天 最后放弃了 吐槽一下这里有个巨长的验证码 巨恶心 感觉没啥必要
最后姿势其实很简单就是host留空 如果知道这个姿势其实不用/source看源码也能做出
1 | http:///getflag |
ezupload
这题最开始没用扫描器扫 像个脑瘫一样黑盒测了半天 测到getkey.php 会获取referer并get_heaers 后来扫到www.zip
感觉自己像个智障
限制大概是
- parse_url 解析的host为 google.com 获者 *.google.com
- get_headers 获取到一个特定的头
大概就是解析的host符合要求但是get_headers访问自己的vps 测了很久 最后的payload
1 | http://vps_ip:port,.google.com:port/ 前后port一致 |
看了下别的师傅的payload 用的是%00
1 | http://vps_ip%00.google.com/ |
进去有个文件上传功能 还有个文件查看功能 有一堆函数可以触发phar反序列化 所以大概攻击链是上传phar文件 然后触发phar反序列化 用compress.zlib绕过正则 由于给的类没什么利用链 又扫到了个flag.php告诉你可以实例化任意类并且只能本地访问
最后攻击链为 soapClient ssrf 访问 flag.php -> 实例化SimpleXMLElemt类 无回显xxe 读取/flag
布吉岛
java web 比赛时候没怎么看 后面等复现环境出来了会专门写一篇文章