Web安全

题目:wanna to see your hat?

(1)扫描网站 nikto
发现在生成的报告里,有./svn 目录,链接过去

nikto -h http://http://117.50.3.97:1515 -o result.html  // -h 是网站名称  -o 是生成的报告名称 

(2)在pristine目录下有源码泄漏
通过dvcs-ripper rip-svn-pl -v -u url,将源码下载到本地,进行审计

./rip-svn-pl -v -u http://117.50.3.97:1515/.svn/

(3)发现在login.php目录下

if (isset($_POST["name"])){
  $name = str_replace("'", "", trim(waf($_POST["name"])));
  if (strlen($name) > 11){
    echo("<script>alert('name too long')</script>");
  }else{
    $sql = "select count(*) from t_info where username = '$name' or nickname = '$name'";
    echo $sql;
    $result = mysql_query($sql);
    $row = mysql_fetch_array($result);
    if ($row[0]){   //只要非空就black
      $_SESSION['hat'] = 'black';
      echo 'good job';
    }else{
	$_SESSION['hat'] = 'green';
    }
    header("Location: index.php");
  }
}

意思是,判断是否输入,如果字长超过11,就会提示太长,否则就会检测sql语句。如果数据库返回的不是空,就成功,否则显示green

if(isset($_SESSION['hat'])){
    if($_SESSION['hat']=='green'){
	output("<img src='green-hat-1.jpg'>",10);
    }else{
	output("<img src='black-fedora.jpg'>",1);
	echo $flag;
    }

如果数据库存在字段hat,并且不是green就返回flag,并且显示black
(4)可能存在注入
输入的是or 1=1--输入的是or 1=1-- 有空格,所以被过滤掉了,or 1=1#'的由来如果被过滤应该怎么办,手工注入探索之旅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值