一次挖掘SRC漏洞 - 从0到有
對一次SRC平臺漏洞挖掘,全程文字描述多一點。
測試范圍:
XXXXX平臺: www.A.com
Xxxxxxx平臺: www.B.com
本人信息搜集不是很6,我這里直接測他的某個站的主站。所以我決定一個一個測,防止漏過,很多人一般都是先搜集子域名,因為子域名的防護(hù)相對薄弱一點。而且獎金也一樣的高。
我就先打開了A.com的主站,先用layer先跑他的子域。在信息搜集中,我先測測A.com。
看看能不能撿個漏。
第一眼就相中了這個搜索框,習(xí)慣性先測高危測起,先測SQL注入。在參數(shù) 輸入1' 發(fā)現(xiàn)只返回了1
發(fā)現(xiàn)只返回了1,沒有返回1'
那這里SQL注入就不存在, 但是我們可以聯(lián)想到:
1.這個站可能全局過濾單引號?
? ? 1.1 如果真是這樣,我只能找int類型注入;
? ? 1.2 如果真是這樣,這個可以幫我過Waf,利用全局特性過濾。
? ? se'l'e'c't=select
2.如果不是全局,那我們換個點來測。
然后我就這個搜索框來繼續(xù)測XSS,發(fā)現(xiàn)失敗了。他過濾了。
然后從其他點發(fā)現(xiàn),他不是全局過濾單引號的,那我們實行plan B。
測試的時候發(fā)現(xiàn)有waf
畢竟是主站,我們可以看看他是什么樣的waf,
1.代碼waf(對有效參數(shù)的參數(shù)值進(jìn)行攔截);
2.硬waf(攔截流量).
我輸入一個不存在的參數(shù),?x=1 union select
直接給我攔了。
說明存在Waf攔截的是流量。
那我就先來繞waf,
最后發(fā)現(xiàn)這是智能型WAF,他不會管注釋里的內(nèi)容。
那我的思路就來了,直接給他安排兩個虛假的參數(shù)a和b
程序只接收的到id參數(shù)。
發(fā)現(xiàn)頁面顯示正常!起送bypass可以用來測試注入,也能用來測XSS,毫無阻攔。
一段操作下來,一個漏洞都沒測到。
然后我們開始目錄掃描,選擇掃描302、403、200這些,我用的BURP,因為怕其他軟件的特征被封ip。
一分鐘過去后,我們看到了結(jié)果。
發(fā)現(xiàn)掃什么都是302 但是發(fā)現(xiàn)了tz這個目錄不一樣
返回的是這個,那這個tz目錄絕對有貓膩呀!!
然后我們觀察他的url結(jié)構(gòu),后面都是跟方法名,那我們不掃文件,直接掃方法。
Fuzz一波。
啊哈 掃到另一個add
字典呢 這里用的是?https://github.com/TheKingOfDuck/fuzzDicts?下載的
返回結(jié)果是用戶名不能為空,那我們就構(gòu)造用戶名的參數(shù)
Fuzz一波 比如username=1
啊哈?有不同的的返回結(jié)果了,讓我們真實姓名不能為空 繼續(xù)用&來構(gòu)造參數(shù)
當(dāng)我輸入name=1 它還是提示這個,說明我們參數(shù)名不對,那我們百度一下真實姓名的英文 發(fā)現(xiàn)是realname 這個參數(shù)
OK 有了新的返回結(jié)果,感覺就像是在猜謎語一樣哈哈。
當(dāng)我們把身份證的英文字母都填進(jìn)去的時候 發(fā)現(xiàn)答案都不對
這時候我有點喪氣了 躺了一會想想 想起以前日站的時候 身份證號參數(shù)基本上都是idcard呀 這些
,突然想起來 會不會用的是拼音呢?
然后索性我就用sfz=1 發(fā)信還是提示的這個
我們注意到 是4個字 那我改為sfzh=1
然后就返回了這個 說明參數(shù)全部猜對了。
返回用戶名1 已存在,我腦海中飛速運(yùn)轉(zhuǎn)。
它為什么知道 用戶名已經(jīng)存在?
答案一個:他和數(shù)據(jù)庫交互了。
那這里就可能存在SQL注入。
一個單引號過去了 果然報錯了 然后試著用and 來閉合
發(fā)現(xiàn)
忘記了 有waf 但是我們不是已經(jīng)過waf了嗎
指哪打哪
a=/*&username=1' and 1='1&realname=1&sfzh=111'&b=*/
構(gòu)造payload
1=2 的時候 返回這個
這不就百分百存在SQL注入嗎,然后我絞經(jīng)腦汁 測不出數(shù)據(jù)來 不知道他是啥數(shù)據(jù)庫
用sqlmap跑直接給我IP給封了
最后 and 1=‘dddd
剛開始我看到這個 搜索了一波 剛開始以為是mssql 但是沒測出來 用了waitfor delay 還報錯了
還以為是HQL注入 最后測了 老半天. 去下了個hqlmap但是開始就卡死了
當(dāng)時我還堅認(rèn)為是HQL注入 哈哈哈 因為當(dāng)時我是這么測的
and user=’1 (這是錯誤的規(guī)范哦 因為這里的1 也是字符串 只有int類型 才會出數(shù)據(jù))
當(dāng)時用substring 加上盲猜用戶名函數(shù)是user 破解出user是dbo
我靠?是dbo 那還不是mssql數(shù)據(jù)庫嗎
繼續(xù)測 看到原因了 修改payload
可以看到是報錯mssql報錯注入 可以歡快的出數(shù)據(jù)啦
后續(xù)
一個SQL注入到手,后續(xù)測了很多東西,一頓手工操作定位到賬號密碼
拿到了賬號密碼去其他平臺撞庫了。
是一個PHP的站點
進(jìn)了后臺 然后有一處任意文件上傳 是有WAF 檢測后綴
首先上傳個jpg 然后直接抓包改后綴 (是前端認(rèn)證的話 抓包可以直接繞過)
換行直接繞過 發(fā)現(xiàn)能上傳繞過。
可開心死我了。心想著一處Getshell到手了呀 然后再圖片內(nèi)容后面加上一句話木馬
啊哈?go 一直是沒反應(yīng) 說明了他還檢測內(nèi)容. 那我直接把代碼內(nèi)容刪了 從<?php 開始測
首先想上傳個phpinfo 都被攔截了 那我用短標(biāo)簽試試<?=?>
<?=phpinfo()?>發(fā)現(xiàn)上傳成功了 解釋一下 這是php的短標(biāo)簽風(fēng)格 “=”號 這里相當(dāng)于echo
之后發(fā)現(xiàn)是php5.6
那可好繞了 php7.0下面的php都能用assert拼接 他是攔截關(guān)鍵字的
直接$a='a'.'s'.'sert';
最后發(fā)現(xiàn)$_GET['a'],$_PSOT['b'].... 這種傳參方式被攔截了,
繼續(xù) FUZZ 刪到 他不攔截為止 刪到了$_GET 他不攔截了 思路來了,那我可以用foreach。
foreach ($_GET as $key=>$value) {$$key=$value; }偽全局,最后$key 相當(dāng)于 $_GET['key']
最后直接 $a($key); 原生代碼就等于assert($_GET['key'])
然后久違的SHELL 就到手了~
總結(jié)
以上是生活随笔為你收集整理的一次挖掘SRC漏洞 - 从0到有的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实战渗透 | 向吃鸡外挂站开炮
- 下一篇: 关于站库分离渗透思路总结