15秒接口模糊測試指南

Alt pic

哲學

《api 接口 fuzz 測試初探》,簡單介紹了一個接口模糊測試工具侠仇。好用是好用,就是需要寫出接口的schema:

POST /v2.0/networks.json HTTP/1.1
Host: pubbeta1-iaas.service.163.org
X-Auth-Token: 6645b224a8314d0c89e09a011cbddf53
Content-Type: application/json
Accept: application/json

***{"network": {"cidr": "20.100.0.0/16", "name": "hzx-vpc-test1", "admin_state_up": true}}***

然后按照如下的方式調(diào)用:

python pjfapi.py -H pubbeta1-iaas.service.163.org -P 9797 -T request.txt

要是有很多接口需要測試的話健民,顯得很不方便柳恐。

我邊上的一個同學看了之后憾朴,就曾這樣說道:

我就想它自己給我測贱傀,都不用寫schema。

Alt pic

在 Software Tools 上面曾經(jīng)有過這么一句話伊脓,xuyou也曾經(jīng)在這里引用過:很多事情, 只有在人能很快的完成的時候,才有了做的可能魁衙。這句話可能比較拗口报腔,反過來說可能更加好懂:如果用某種方法做一件事情太耗時間了, 那么人就不可能用這個方法做事情剖淀。只有一個方法能夠讓人足夠快的做好事情的時候纯蛾,這個方法才會變得實用,同時這個事情才有做的可能性纵隔。

我在之前的一篇文章中提到過 gun parallel這個工具翻诉。

很多接口在并發(fā)操作下會出現(xiàn)一些bug炮姨,比如有一些判斷數(shù)據(jù)庫里面沒有加鎖,是在代碼層面判斷的碰煌,結(jié)果并發(fā)請求下去舒岸,每個請求在到達服務器的時候是判斷通過,一起寫了之后就超出限制了芦圾。但是你要真正測并發(fā)的話蛾派,又要寫腳本,或者利用python的mulitiprocessing封裝一下个少。但我手邊有了parallel洪乍,又在bashrc里面就加了以下兩個alias

alias p='parallel'

這樣制造并發(fā)太方便了,只需要管道后面加個p , 我就時時刻刻可以制造并發(fā)來觀察響應夜焦。

舉個例子

seq 50 | p -n0 -q curl 'example.com'

因為很方便壳澳,所以經(jīng)常能夠在命令行下制造并發(fā),發(fā)現(xiàn)了不少問題茫经!

實現(xiàn)

如此一來巷波,那么就改造一下接口模糊測試工具哈。

最簡單的方法就是傳入一個curl科平,然后自動給你進行模糊注入褥紫。

curl請求是最容易得到的,比如chrome瞪慧,postman里面可以自動導出髓考,openstack client加上 --debug參數(shù)可以直接得到等等。

Alt pic

于是我稍微改造了一下弃酌,自動根據(jù)curl請求構(gòu)建出pjfapi 的schema氨菇。

使用方法,把curl請求粘貼到request.txt中妓湘。
然后執(zhí)行

python fuzz_curl.py request.txt

執(zhí)行效果如下:

(my_new_env) hzhuangzhexiao@pubbeta1-nova10:~/api-fuzz$ python fuzz_curl.py request.txt 
[INFO] 
                 _   ______             
     /\         (_) |  ____|            
    /  \   _ __  _  | |__ _   _ ________
   / /\ \ | '_ \| | |  __| | | |_  /_  /
  / ____ \| |_) | | | |  | |_| |/ / / / 
 /_/    \_\ .__/|_| |_|   \__,_/___/___|
          | |                           
          |_|                           
    
[INFO] Starting api Fuzz...
[INFO] Start fuzzing in a few seconds...
[INFO] Performing 5 requests to 10.182.2.253
[INFO] Average statistics:

   HTTP Code: ['200']
   Time: 0.0014
   Length: 34
   Hash: ['d8e71bf22b715ade49030e45ee661c1d']

[400, 0.002610921859741211, 66, '110ef21d725c0242cb1c5b913f15137b']
[400, 0.0028450489044189453, 66, '110ef21d725c0242cb1c5b913f15137b']
[400, 0.0028600692749023438, 141, '3391da2f8a7bc52d2d38fe1810a3370d']
[200, 0.002708911895751953, 68, 'd8e71bf22b715ade49030e45ee661c1d']
[500, 0.002846956253051758, 128, 'cb78997cdbb65ad20fe58356baaeadb7']
2018-03-26 16:53:24,466 [90991] my_logger ERROR: Got something interesting!

     Payload: {"extra_specs": {"unique_on_host": "dsadsa", "host?equired": "no"}}
     HTTP Code: 500
     Execution time: 0.00284695625305
     Response Length: 128
     Response Hash: cb78997cdbb65ad20fe58356baaeadb7
 whole result : [500, 0.002846956253051758, 128, 'cb78997cdbb65ad20fe58356baaeadb7'] 

需要關注 500 錯誤的 Payload即可查蓉。

目前還是處于初期poc階段,只支持post json類型的請求注入榜贴。uncurl的解析也不完善豌研。希望日后有時間慢慢完善。

試用請戳: https://github.com/smasterfree/api-fuzz

歡迎star;5场鹃共!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市驶拱,隨后出現(xiàn)的幾起案子霜浴,更是在濱河造成了極大的恐慌,老刑警劉巖蓝纲,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阴孟,死亡現(xiàn)場離奇詭異晌纫,居然都是意外死亡,警方通過查閱死者的電腦和手機永丝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門锹漱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人类溢,你說我怎么就攤上這事凌蔬。” “怎么了闯冷?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵砂心,是天一觀的道長。 經(jīng)常有香客問我蛇耀,道長辩诞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任纺涤,我火速辦了婚禮译暂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘撩炊。我一直安慰自己外永,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布拧咳。 她就那樣靜靜地躺著伯顶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骆膝。 梳的紋絲不亂的頭發(fā)上祭衩,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音阅签,去河邊找鬼掐暮。 笑死,一個胖子當著我的面吹牛政钟,可吹牛的內(nèi)容都是我干的路克。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼养交,長吁一口氣:“原來是場噩夢啊……” “哼衷戈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起层坠,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎刁笙,沒想到半個月后破花,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谦趣,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年座每,在試婚紗的時候發(fā)現(xiàn)自己被綠了前鹅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡峭梳,死狀恐怖舰绘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情葱椭,我是刑警寧澤捂寿,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站孵运,受9級特大地震影響秦陋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜治笨,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一驳概、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旷赖,春花似錦顺又、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至流济,卻和暖如春锐锣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绳瘟。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工雕憔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人糖声。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓斤彼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蘸泻。 傳聞我的和親對象是個殘疾皇子琉苇,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)悦施,斷路器并扇,智...
    卡卡羅2017閱讀 134,660評論 18 139
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,982評論 3 119
  • 2017-8-15 周二 凌晨 第一篇日記抡诞,作為一個新的開始吧穷蛹。 不想每天庸庸碌碌土陪,一事無成。寫點東西總算是對自己...
    唐喑喑閱讀 196評論 0 1
  • “我思肴熏,故我在”鬼雀。要說人體最奇妙的器官,可能非大腦莫屬蛙吏,所有的信息存在于大腦源哩,行為、思維鸦做、情感励烦、性格所表現(xiàn)的各種差...
    春江水暖_2d1e閱讀 1,095評論 0 2
  • 從個人的角度來看: 今天我的心情怎么樣?有什么印象深刻的事情馁龟? 今天心情崩侠。印象深刻的事情是發(fā)現(xiàn)一個模仿天貓官網(wǎng)的網(wǎng)...
    元氣滿滿321閱讀 250評論 1 1