攻防世界 Web进阶(一)
嗯…,終于把新手區的題做完了,感覺學到了不少東西( ?? ω ?? )y 今天來記錄下進階題
1、ics-06
打開題目,一個看起來看來很炫酷的頁面,瞎點一會發現只有一個報表中心可以進
一開始以為是sql注入題,嘗試了一會發現不是,這題考察的是爆破,當id=2333時,得到flag。
2、PHP2
打開題目,御劍掃描,如果掃不到就說明你字典里需要添上了。
發現index.phps源碼泄露,打開網頁:
即:
審計下代碼,發現 要得到flag要滿足兩個條件
一,要使"admin"===$_GET[id]不成立
二,經過$_GET[id] = urldecode($_GET[id]);,使得$_GET[id] == "admin"成立。
知識點:
1、Url的編碼格式采用的是ASCII碼(16進制) 不能在Url中包含任何非ASCII字符,例如中文,如果Url中含有非ASCII字符的話, 瀏覽器會對Url進行urlencode,然后發送給服務器
2、關于urldecode/urlencode函數:
當傳入參數id時,瀏覽器在后面會對非ASCII碼的字符進行一次urlencode
然后在這段代碼中運行時,會自動進行一次urldecode
在urldecode()函數中,再一次進行一次解碼
當第一次比較時,實際是
if("admin"==="%61dmin")而經過$_GET[id] = urldecode($_GET[id]);
第二次比較是:
if("admin" == "admin");故構造:
?id=%2561dmin
得到flag
3、mfw
打開題目,是一個網站:
隨便翻翻,發現這個頁面
懷疑存在源碼泄露,用dirsearch掃描一下,發現git源碼泄露:
dirsearch是一個基于python的命令行工具,旨在暴力掃描頁面結構,包括網頁中的目錄和文件。
用法:
詳細請看:https://www.freebuf.com/column/153277.html
果然存在git源碼泄露;
利用GitHack下載源碼
關于GitHack一個git泄露利用腳本,很好用~
詳細請看https://www.freebuf.com/sectool/66096.html
常用
下載完成,得到一個以url命名的文件夾;打開發現有flag.php但里面沒東西;
查看index.php文件:
看到了關鍵代碼:
分析代碼可知,
若想得到flag,即得到"Detected hacking attempt!"
則需要給page傳入的須滿足
嘗試
?page=abc') or system("cat templates/flag.php");//即
$file = "templates/?page=abc') or system("cat templates/flag.php");//.php";即傳?page=abc') or system("cat templates/flag.php");//
拼成下面語句:
assert("strpos('templates/?page=abc') or system("cat templates/flag.php");//.php', '..') === false") or die("Detected hacking attempt!");F12 得到flag
assert() 函數:
用來判斷一個表達式是否成立。返回true or false
詳細:https://www.cnblogs.com/yuerdongni/archive/2013/10/12/3364954.html
strpos()函數:
參考文章:https://blog.csdn.net/wyj_1216/article/details/95218671
總結
以上是生活随笔為你收集整理的攻防世界 Web进阶(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux中最方便的管理员获取方法
- 下一篇: i春秋做题记录 web(一)