作者:冰的原点 说明:文章已发表于黑客手册07年11期,转载请注明出处!
自己刚刚学ASP,哎,没有人教,好不爽呀!这不,自己看了几本书后,而且非安全上每期都有分析ASP的文章,代码都看得‘懂’了,于是心痒了,马上跑到百度大叔那里去!下了个浪人文章系统V2.3!慢慢看了起来!
由于没有经验,因此就看先黑箱测试!本地打开一看,呵呵,界面还不错嘛!如图1.

随便点个文章看看,咦,竟然是这种形式的:read.asp?id=120,那还等什么,直接在后面加一个 and 1=1试试,如图2.

哇,直接跳到官方网站去了!怎么回事?看来有东西在监视url传来的数据。这回没辙了,只有硬着头皮去看代码了。于是来到这里,关键代码如下:
<!--#include file="Inc/Config.asp" --> <% dim sql dim rs dim SortName,SortID,AsSortName,AsSortID if Request.QueryString("ID")="" then response.write "没有选择相关文章" response.end end if
set rs=server.createobject("adodb.recordset") sql="update "&GuTablePrefix&"_Article set ArticleReadNum=ArticleReadNum+1 where ArticleID="&Request.QueryString("ID") rs.open sql,conn,1,3 sql="select SortID,AsSortID,ArticleTitle,ArticleWriter,ArticleWriterContact,ArticleFrom,ArticleFromURL,ArticleContent,ArticleCommend,ArticleShow,ArticleReadNum,ArticleDate from "&GuTablePrefix&"_Article where ArticleID="&Request.QueryString("ID") rs.open sql,conn,1,1 if rs.eof and rs.bof then response.write "没有找到相关文章" response.end else ArticleTitle=rs("ArticleTitle") LKeys=rs("ArticleTitle") SortID=rs("SortID") AsSortID=rs("AsSortID") ArticleWriter=rs("ArticleWriter") ArticleWriterContact=rs("ArticleWriterContact") ArticleFrom=rs("ArticleFrom") ArticleFromURL=rs("ArticleFromURL") ArticleCommend=rs("ArticleCommend") ArticleReadNum=rs("ArticleReadNum") ArticleDate=rs("ArticleDate") ArticleContent=rs("ArticleContent")
set rsC=server.createobject("adodb.recordset") sql="select SortName from "&GuTablePrefix&"_Sort where SortID="&SortID rsC.open sql,conn,1,1 SortName=rsC("SortName") rsC.close set rsS=server.createobject("adodb.recordset") sql="select AsSortName from "&GuTablePrefix&"_AsSort where AsSortID="&AsSortID rsS.open sql,conn,1,1 AsSortName=rsS("AsSortName") rsS.close end if rs.close %> |
很明显,这里只判断id是不是为空就直接进入数据更新,按理由我们是有机可乘的,唯一有问题的就是那个包含文件了(这里要谢谢神无月同学了,开始我还以为这个文件里面不会有问题,没想到问题就出在这个文件里)。于是我们来到这里:
<!-- #include file="conn.asp" --> <!-- #include file="Function.asp" --> <% dim WebName,WebURL,WebMKeyWords,WebMDescription dim GuTablePrefix,LRECNUserNameD,LRECNUserGradeD dim SM_SServer,SM_SUsername,SM_SPassword,RM_Subject,RM_SendEmail,RM_SendName,RM_Body dim RArticleDate,RArticleUserName,RArticleAddIP,RArticleReadNum dim MessageQQ,SearchIP,ReadExplain WebName="浪人文章" WebURL="http://www.lre.cn/article/" WWebMKeyWords="浪人文章" WebMDescription="浪人文章" GuTablePrefix="LRE_CN" LRECNUserNameD=session("LRECNUserNameSe") LRECNUserGradeD=session("LRECNUGUserGrade") SM_SServer="mail.lre.cn" SM_SUsername="article@lre.cn" SM_SPassword="sendmail" RM_Subject="" RM_SendEmail="" RM_SendName="" RM_Body="1" ArticleWriter="未知" ArticleWriterC ArticleFrom="网络" ArticleFromURL="" RArticleDate="0" RArticleUserName="0" RArticleAddIP="0" RArticleReadNum="0" MessageQQ="http://wpa.qq.com/msgrd?V=1&Site=WWW&Menu=yes&Uin=" SearchIP="http://www.ip.cn/ip.php?q=" ReadExplain="" ’Username:peonun ’DateTime:2006-9-14 00:00:20 %> <!-- #include file="../SQL.asp" --> |
[1] [2] [3] 下一页 |