CTF---Web入門第六題 因缺思汀的繞過


因缺思汀的繞過分值:20

  • 來源: pcat
  • 難度:中
  • 參與人數:6479人
  • Get Flag:2002人
  • 答題人數:2197人
  • 解題通過率:91%


訪問解題鏈接去訪問題目,可以進行答題。根據web題一般解題思路去解答此題。看源碼,請求,響應等。提交與題目要求一致的內容即可返回flag。然后提交正確的flag即可得分。web題主要考察SQL注入,XSS等相關知識。涉及方向較多。此題主要涉及源碼審計,MySQL相關的知識。


flag格式 CTF{}

解題鏈接: http://ctf5.shiyanbar.com/web/pcat/index.php

原題鏈接:http://www.shiyanbar.com/ctf/1940

【解題報告】

  這是我入門Web開始寫的第六道題,我們點開解題鏈接,發現頁面很簡潔,我們首先第一步還是先看頁面的源碼,也很簡單,總共一行,但是這一行有一點讓我好奇,多了一個source.txt的注釋,說不定這個source.txt有貓膩,先自己想想看,本機可能不存在這個文件,我們通過瀏覽器訪問,將后綴名改成source.txt訪問試試!哎,還真的是,頁面的完整源碼原來在這里!

咱們來對這段代碼進行審計

這一部分很有意思,這里的意思是輸入的值過濾了這些SQL注入語句,像以上這些都是!

我們看這一行,這一行也是一段SQL注入語句,這段的意思是將uname作為條件輸入,然后通過提交的uname去數據庫中查詢uname和pwd,然后把查詢到的pwd和用戶輸入的pwd再進行對比

如果用戶輸入的pwd和數據庫中查詢的pwd相同的話,輸出CTF{XXXXXX},否則輸出其它的!

咱們需要做的就是讓用戶輸入的pwd和數據庫中查詢的pwd相同,這下子我們改怎么辦呢?

咱們可以利用以下SQL注入語句:

' or 1=1 group by pwd with rollup limit 1 offset 2 #

這段語句什么意思呢?

SELECT * FROM interest where uname=' ' or 1=1 
group by pwd with rollup  (在數據庫中添加一行使得pwd=NULL)
limit 1 (只查詢一行)
offset 2  (從第二行開始查詢)
#注釋
此時密碼只要為空即可查詢成功

 

這個就是本題的Key了!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM