程序邏輯問題分值:20
- 來源: 實驗吧
- 難度:中
- 參與人數:6909人
- Get Flag:1993人
- 答題人數:2070人
- 解題通過率:96%
繞過
解題鏈接: http://ctf5.shiyanbar.com/web/5/index.php
原題鏈接:http://www.shiyanbar.com/ctf/62
【解題報告】
這是我入門Web開始寫的第十二道題,這道題我們首先先查看它的源代碼,發現它源代碼里面有個隱藏的txt文件,我們點擊查看一下隱藏的源代碼,很顯然,這是一道和php有關的代碼審計,我們一步一步來看~~~
第一個if語句的意思是我們傳入一個user和pass,它就可以執行連接數據庫的命令,否則打印連接失敗;第二段
意思是查php里面user字段里面的pw的字段值,這句話的意思是把上一個查詢的值放入到query變量中,如果查詢的結果不存在,就輸出一個錯誤,如果有的話就打印出Key。。。
我們一般是不會去這么查詢,在這個查詢里我們可以利用簡單的sql注入繞過它查詢的過程,我們可以構造一個password查詢結果,然后和后面輸入的密碼相等,咱們就可以繞過它驗證的過程。。。咱們就利用sql里面的聯合查詢吧,UNION 操作符用於合並兩個或多個 SELECT 語句的結果集。
咱們就構造出以下結果:
' union select "202CB962AC59075B964B07152D234B70" #
密碼:123
后面那一大串是123的md5的值
這樣就得到了Key!