推薦:對(duì)FCBLOG的簡(jiǎn)單分析
發(fā)布日期:2021-12-26 21:56 | 文章來(lái)源:源碼中國(guó)
一:古老的OR注入漏洞。
看一下首頁(yè),做的好湊合。有個(gè)登陸的地方,如圖1.
二話不說(shuō),試’or’=’or’,
點(diǎn)擊登陸。沒想到竟然直接進(jìn)來(lái)了。我們看下它的login.asp,關(guān)鍵代碼如下:
!--#include file="conn.asp"-->
FCBLOG
用戶登陸
function del_space(s)
{
for(i=0;i
for(j=s.length-1;j>=0;--j)
{
if(s.charAt(j)!=" ")
break;
}
return s.substring(i, j);
}
function VerifySubmit()
{
topic = del_space(document.form1.name.value);
if (topic.length == 0)
{
alert("您忘了寫用戶名!");
return false;
}
if (document.form1.pwd.value == "")
{
alert("請(qǐng)輸入密碼!");
return false;
}
return true;
}
只用了javascript在本地做了個(gè)判斷用戶名和密碼是否為空就直接放過(guò)去了,也
沒用其它文件來(lái)判斷下數(shù)據(jù),當(dāng)然也沒有做過(guò)濾,不產(chǎn)生注入才怪,如圖2
二:跨站漏洞。
首頁(yè)還有個(gè)留言的版塊,我們?nèi)タ纯?!直接在幾個(gè)框框中輸入:alert(/
冰的原點(diǎn)/),如圖3
提交,果然不出所料啊,對(duì)話框彈了出來(lái),而且還
彈了兩次,如圖4
.這里有個(gè)問(wèn)題,大家看下我們提交的文字在頁(yè)面上的顯示,如圖5
.也就是為什么只彈了兩次,而沒有第三次呢?我們右鍵-查看源文件,發(fā)現(xiàn)有
如下代碼:
<li>標(biāo)題:<script>alert(/冰的原點(diǎn)/)</script></li><li>內(nèi)容:
<script>alert(/冰的原點(diǎn)/)
</script></li><address><script>alert(/冰的原點(diǎn)/)</script>發(fā)表留言
于2007-10-26 14:16:41</address></li><li>標(biāo)題:kk</li><li>內(nèi)容:
kkkkkk</li><address>kk發(fā)表留言于2007-8-29 23:31:38</address></li></ul>
也就是說(shuō)程序?qū)?nèi)容傳遞過(guò)來(lái)的值進(jìn)行了轉(zhuǎn)化,把<和>分別轉(zhuǎn)化成了<和>,只做了一次過(guò)濾,哎,程序員是馬虎了(這里我沒有去看它的程序源代碼了)。
三:真假注入。
我們先把程序放到工具里面去,看有沒有明顯的注入,如圖6
.顯然工具無(wú)能為力
。而且我看了下,大部分的頁(yè)面都是靜態(tài)的。有人就會(huì)問(wèn)了,都是靜態(tài)的還能注
入么?這里它的靜態(tài)的頁(yè)面都是用JS調(diào)用生成的,幾乎每個(gè)頁(yè)面都包含如下代碼:
if(page=totalpage)then
’生成HTML靜態(tài)首頁(yè)
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.CreateFolder(Server.MapPath(""))
Set fout = fso.CreateTextFile(Server.MapPath("msgpost.html"))
fout.WriteLine show
fout.close
response.redirect"msgpost.html"
end if%>
正因?yàn)橛羞@樣的東西,所以值在傳遞的時(shí)候,都沒怎么過(guò)濾,代碼如下:
’打開模板代碼,并將其中特殊代碼轉(zhuǎn)變?yōu)榻邮苤?
sql1="select id,user_skin_main,user_skin_showlog from fc_moban where
default=true"
set rs1=Server.CreateObject("adodb.recordset")
rs1.open sql1,conn,1,1
user_skin_main=rs1("user_skin_main")
user_skin_showlog=rs1("user_skin_showlog")
rs1.close
像這樣的代碼還有很多呢。
看一下首頁(yè),做的好湊合。有個(gè)登陸的地方,如圖1.

二話不說(shuō),試’or’=’or’,
點(diǎn)擊登陸。沒想到竟然直接進(jìn)來(lái)了。我們看下它的login.asp,關(guān)鍵代碼如下:
!--#include file="conn.asp"-->
FCBLOG
用戶登陸
function del_space(s)
{
for(i=0;i
for(j=s.length-1;j>=0;--j)
{
if(s.charAt(j)!=" ")
break;
}
return s.substring(i, j);
}
function VerifySubmit()
{
topic = del_space(document.form1.name.value);
if (topic.length == 0)
{
alert("您忘了寫用戶名!");
return false;
}
if (document.form1.pwd.value == "")
{
alert("請(qǐng)輸入密碼!");
return false;
}
return true;
}
只用了javascript在本地做了個(gè)判斷用戶名和密碼是否為空就直接放過(guò)去了,也
沒用其它文件來(lái)判斷下數(shù)據(jù),當(dāng)然也沒有做過(guò)濾,不產(chǎn)生注入才怪,如圖2

二:跨站漏洞。
首頁(yè)還有個(gè)留言的版塊,我們?nèi)タ纯?!直接在幾個(gè)框框中輸入:alert(/
冰的原點(diǎn)/),如圖3

提交,果然不出所料啊,對(duì)話框彈了出來(lái),而且還
彈了兩次,如圖4

.這里有個(gè)問(wèn)題,大家看下我們提交的文字在頁(yè)面上的顯示,如圖5

.也就是為什么只彈了兩次,而沒有第三次呢?我們右鍵-查看源文件,發(fā)現(xiàn)有
如下代碼:
<li>標(biāo)題:<script>alert(/冰的原點(diǎn)/)</script></li><li>內(nèi)容:
<script>alert(/冰的原點(diǎn)/)
</script></li><address><script>alert(/冰的原點(diǎn)/)</script>發(fā)表留言
于2007-10-26 14:16:41</address></li><li>標(biāo)題:kk</li><li>內(nèi)容:
kkkkkk</li><address>kk發(fā)表留言于2007-8-29 23:31:38</address></li></ul>
也就是說(shuō)程序?qū)?nèi)容傳遞過(guò)來(lái)的值進(jìn)行了轉(zhuǎn)化,把<和>分別轉(zhuǎn)化成了<和>,只做了一次過(guò)濾,哎,程序員是馬虎了(這里我沒有去看它的程序源代碼了)。
三:真假注入。
我們先把程序放到工具里面去,看有沒有明顯的注入,如圖6

.顯然工具無(wú)能為力
。而且我看了下,大部分的頁(yè)面都是靜態(tài)的。有人就會(huì)問(wèn)了,都是靜態(tài)的還能注
入么?這里它的靜態(tài)的頁(yè)面都是用JS調(diào)用生成的,幾乎每個(gè)頁(yè)面都包含如下代碼:
if(page=totalpage)then
’生成HTML靜態(tài)首頁(yè)
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.CreateFolder(Server.MapPath(""))
Set fout = fso.CreateTextFile(Server.MapPath("msgpost.html"))
fout.WriteLine show
fout.close
response.redirect"msgpost.html"
end if%>
正因?yàn)橛羞@樣的東西,所以值在傳遞的時(shí)候,都沒怎么過(guò)濾,代碼如下:
’打開模板代碼,并將其中特殊代碼轉(zhuǎn)變?yōu)榻邮苤?
sql1="select id,user_skin_main,user_skin_showlog from fc_moban where
default=true"
set rs1=Server.CreateObject("adodb.recordset")
rs1.open sql1,conn,1,1
user_skin_main=rs1("user_skin_main")
user_skin_showlog=rs1("user_skin_showlog")
rs1.close
像這樣的代碼還有很多呢。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
相關(guān)文章