BUGKU-CTF入门笔记
目錄
6.本地管理員
7.bp
8.eval
9.變量1
10.頭等艙
6.本地管理員
進去界面是一個管理員登錄界面,嘗試了一下admin,passwd弱口令,發現需要本地管理員登錄。
馬上開啟bp進行抓包模式,弱口令登錄,添加一個x-forward-for字段,發現返回包里有提示(我查看源碼沒注意,其實網頁源碼里面就有),解碼發現是test123,我猜測可能是賬號,于是乎去爆破密碼,根本沒來得及看返回包的值(這里我添加的x-forward-for應該是被禁了,其實這個字段在這里是沒用的,我最開始想用fakeip插件,發現無法加載,其實是加載了災,才選擇手動加該字段),爆破好一會兒發現不對勁,于是直接放包檢查x-forward-for字段是否可以繞過本地管理員登錄,發現并不能!馬上修正錯誤,看到fake-ip插件可以用了,馬上用fake-ip嘗試,發現可以繞過。但是密碼賬號不對,只有一個提示test123,嘗試過賬號test密碼123,賬號密碼都是test123等都不對。 //破案了,是x-forwarded-for。
最后盲猜test可能是密碼,賬號盲猜admin,出現flag!
7.bp
拿到題一看提示是一個弱口令爆破,直接上bp,然后選擇字典爆破,發現查看返回長度發現都是一樣的。(新手卒)
通過查看返回包,發現一段js代碼,奈何本人技術太菜,看不太懂,所以跑去找writeup了。
看了writeup才知道,這代碼意思就是返回的code里面包含bugku10000這個值時,就返回wrong account or password,如果不包含就會返回flag。(感覺像廢話,其實這題主要是不管是否爆破成功,返回長度都是一樣的,所以導致無法知道具體密碼)。大佬們的方法就是利用intruder中的grep-match過濾,通過過濾的方法找到密碼。
最后過濾后發現有一項被過濾出來了,然后查看密碼登錄后獲取flag值。
8.eval
一進來顯示一串php代碼,意思是去接收hello變量傳入的參數并賦值給a,然后將a變量用eval函數執行,并且打印出來。
構造payload:?hello=system(%27tac%20flag.php%27),system函數里執行cat無法直接讀取到flag,但是本人常用tac,倒序讀的,直接就讀出來了,用sort讀也可以讀出來。
看到大神們的一些其他方法讀取文件,比如用使用highlight()函數、file()函數、``反引號、show_source()函數。
9.變量1
一進來看到這個題,發現是個審計代碼的題,提示說flag在變量里,代碼里的意思是接收一個args變量,最后輸出一個$args,但是中間做了一個過濾,只允許字母數字和下劃線,其他不行。
轉碼那些都會攜帶特殊字符,所以到這一步我就不會做了,看了題解發現可以用一個全局變量來輸出。大神的解釋是:我們可以猜想$args很有可能是一個數組,應該想到的就是超全局變量$GLOBALS,它是用來存儲全局變量的,全局變量的值在這個超級全局變量里面是一個鍵值,先當于hashmap的鍵值對。全局變量可以通過變量名在$GLOBALS找到相對應的值。
所以我們構造payload只需要傳入一個GLOBALS就可以了。
10.頭等艙
一進來發現是個白板,首先還是查看了網頁源碼,發現啥東西也沒有
馬上開啟dirsearch掃描,掃到一個登錄目錄,訪問居然也是這個頁面,感覺很奇怪。
馬上轉手bp,發現在返回包中回來了flag??????這也。。。
?注:本文涉及的所有地址均來源于bugku靶場,僅用于個人筆記保存,請勿轉載,如有錯誤請指教。
總結
以上是生活随笔為你收集整理的BUGKU-CTF入门笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手算KN-based ngram语言模型
- 下一篇: 并发编程问题