WEB新手之sql註入
繼續寫題。
這題看上去是一道sql註入題。F12查看後臺代碼。
可以看到後臺有兩個變量,分別是uname以及passwd。然後接下來讀一下後臺的代碼,這裏的意思是,如果用戶輸入的密碼經過md5加密後,和通過select語句選出來的password相等,則輸出“login success”,否則輸出“login fail”。利用這裏md5()條件語句,我們可以對後臺的sql語句進行註入。
發包之後,這裏後臺的sql語句實際上就變成了"select password from gwuser where username =‘-1‘ union select md5(1)#‘"
繼續F12查看後臺代碼,如下圖所示。
可以看到後臺也有兩個變量,分別是no和name。先嘗試一下sql註入爆表,如下圖所示。
成功爆出表名——“gwhts"。
而後繼續爆行,如法炮制。不過接下來很快會發現報錯,彈出"Attack!"。
檢查過自身語句沒有錯誤後,這時考慮到了後臺對標點符號的過濾(本題亮點)。於是將? / . ‘ ` "
通過上面兩張圖我們可以發現,在輸入name變量的時候, ‘ 被後臺過濾掉了,而其他字符沒有。於是sql註入語句應該要改為"no=-1\&name= union select column_name from information_schema.columns where table_name="gwhts" limit 1,1#"。爆出行val。
最後爆出flag。如下圖所示。
WEB新手之sql註入