less-11

uname和passwd直接带入查询,万能密码

sqlmap自动搜索表单,或者抓包后用-r参数


less-12

post数据用小括号进行包裹,构造万能密码") or 1=1 #


less-13

将mysql_error()返回前端,且用‘)包裹,构造') or 1=1 #


less-14

post的数据用双引号包裹,构造万能密码"or 1=1 #


less-15

报错不返回前端,考虑布尔和时间盲注


less-16

与15思路相同,但是由小括号,双引号包裹


less17

这里是更新用户的密码。

加入了过滤函数,只将uname带入查询,并对uname进行处理

 1 function check_input($value)
2 {
3 if(!empty($value)) //不能为空
4 {
5 // truncation (see comments)
6 $value = substr($value,0,15); //只获取前15位字符串
7 }
8
9 // Stripslashes if magic quotes enabled
10 if (get_magic_quotes_gpc()) 如果开启了gpc
11 {
12 $value = stripslashes($value); 用这个函数处理
13 }
14
15 // Quote if not a number
16 if (!ctype_digit($value))如果不是数字的话,对特殊字符进行转义,并包裹单引号
17 {
18 $value = "'" . mysql_real_escape_string($value) . "'";
19 }
20
21 else
22 {
23 $value = intval($value);
24 }
25 return $value;
26 }

但是,防御函数只处理了uname变量,并未对passwd处理。


less-18

这里提示了IP,可能是xxf注入

通过分析源码,这里对uname和passwd参数进行了处理,但是还有两个新的全局变量可控,ip和user-agent

 1 function check_input($value)
2 {
3 if(!empty($value))
4 {
5 // truncation (see comments)
6 $value = substr($value,0,20);
7 }
8
9 // Stripslashes if magic quotes enabled
10 if (get_magic_quotes_gpc())
11 {
12 $value = stripslashes($value);
13 }
14
15 // Quote if not a number
16 if (!ctype_digit($value))
17 {
18 $value = "'" . mysql_real_escape_string($value) . "'";
19 }
20
21 else
22 {
23 $value = intval($value);
24 }
25 return $value;
26 }
27
28
29
30 $uagent = $_SERVER['HTTP_USER_AGENT'];
31 $IP = $_SERVER['REMOTE_ADDR'];
32 echo "<br>";
33 echo 'Your IP ADDRESS is: ' .$IP;
34 echo "<br>";
35 //echo 'Your User Agent is: ' .$uagent;
36 // take the variables
37 if(isset($_POST['uname']) && isset($_POST['passwd']))
38
39 {
40 $uname = check_input($_POST['uname']);
41 $passwd = check_input($_POST['passwd']);
42
43 /*
44 echo 'Your Your User name:'. $uname;
45 echo "<br>";
46 echo 'Your Password:'. $passwd;
47 echo "<br>";
48 echo 'Your User Agent String:'. $uagent;
49 echo "<br>";
50 echo 'Your User Agent String:'. $IP;
51 */
52
53 //logging the connection parameters to a file for analysis.
54 $fp=fopen('result.txt','a');
55 fwrite($fp,'User Agent:'.$uname."\n");
56
57 fclose($fp);
58
59
60
61 $sql="SELECT users.username, users.password FROM users WHERE users.username=$uname and users.password=$passwd ORDER BY users.id DESC LIMIT 0,1";
62 $result1 = mysql_query($sql);
63 $row1 = mysql_fetch_array($result1);
64 if($row1)
65 {
66 echo '<font color= "#FFFF00" font size = 3 >';
67 $insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)";
68 mysql_query($insert);
69 //echo 'Your IP ADDRESS is: ' .$IP;
70 echo "</font>";
71 //echo "<br>";
72 echo '<font color= "#0000ff" font size = 3 >';
73 echo 'Your User Agent is: ' .$uagent;
74 echo "</font>";
75 echo "<br>";
76 print_r(mysql_error());
77 echo "<br><br>";
78 echo '<img src="../images/flag.jpg" />';
79 echo "<br>";
80
81 }
82 else
83 {
84 echo '<font color= "#0000ff" font size="3">';
85 //echo "Try again looser";
86 print_r(mysql_error());
87 echo "</br>";
88 echo "</br>";
89 echo '<img src="../images/slap.jpg" />';
90 echo "</font>";
91 }
92
93 }

当–level参数设定为3或者是3以上时,会尝试对User-Agent进行注入测试

sqlilab less11-less18的更多相关文章

  1. 【sqli-labs】Less18~Less22

    Less18: User-Agent注入,有错误回显 感叹一句,越来越难了.现在只能先看代码再分析怎么注入了..... 通过代码,发现username和password均做了校验.但是会有一个插入us ...

  2. 【sqli-labs】Less11~Less16

    学习sqli-labs的笔记,前面的笔记内容比较详细.后面的只记录关键点了. Less11: POST注入, 有回显,有错误提示 从11题起是POST注入,发现有两个输入框.用firefox的F12查 ...

  3. sqli-labs Less-11 and Less-12

    这关是post注入的世界,post注入就是表单中填好数据通常会被送到服务器,然后由服务器将其发送到它要去的地方(比如,送到一个服务器网关程序中,然后由这个程序对其进行处理). 不显示东西,那么加引号等 ...

  4. sqli-labs less-11 --> less-12

    Less-11(报错注入POST方式) 1.判断是否存在注入点 因为是POST 方式的与GET方式稍有不同,可以选择使用burp suite以及火狐的hackbar进行操作,直接在输入框usernam ...

  5. sqli-lab 第一题 单引号 error based single quotes

    一.第一次见面 1.初识 http://localhost/Less-1/ 提示输入id,因此访问http://localhost/Less-1/?id=1 可以继续测试id=2.3.4等的情况,会输 ...

  6. 【sqli-labs】 less18 POST - Header Injection - Uagent field - Error based (基于错误的用户代理,头部POST注入)

    这次username和password都进行了输入校验 但是ip和uagent没有校验 当我们用admin admin登陆成功后,就会一条插入语句 由于程序无条件的信任了浏览器的header信息,那么 ...

  7. 【sqli-labs】 less11 POST - Error Based - Single quotes- String (基于错误的POST单引号字符型注入)

    查看源码,用户名和密码通过post提交 加单引号提交 出现报错,推测对应的SQL语句 , 直接使用or构造永真登录 成功,注意此处登录的用户为表中的第一个用户 需要改变用户可以通过改变筛选条件实现 作 ...

  8. less11 属性合并

    less //+ 合并以后,以逗号分割属性值 .mixin() { box-shadow+: inset 0 0 10px #555 ; } .myclass { .mixin(); box-shad ...

  9. 2019-10-24:渗透测试,sqli-labe,less18,19关

    less19基于错误_POST_Referer_请求头注入 查看关键源码,跟18关不一样的只是,回显的是Referer不是User-Agent,判断INSERT语句结构:INSERT INTO tab ...

随机推荐

  1. apache的ab压力测试介绍

    1.ab命令原理 Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx.lighthttp.IIS等其它Web服务器的压力. ab命令对发出负载的计算机要求很低,既不会占 ...

  2. 第二十七章 Linux系统管理之定时任务

    一.定时任务概述 1.含义:设定某个日期或时间周期性执行指令. 2.crond # 守护进程 分钟级别 rond是Linux系统中用来定期执行命令或脚本的一种服务软件,一般情况下,我们安装完CentO ...

  3. 【API管理 APIM】APIM集成内部VNet时,常遇见的关于自定义DNS服务问题。

    问题描述 Azure 的APIM集成虚拟网络有两种方式,外部VNET, 内部VNET. 外部VNET,要求低,可以通过APIM访问VNET中的VM等资源,不需要配置自定义DNS服务器,这种方式下,AP ...

  4. 获取和设置pdf目录

    目录 前言 工具 获取pdf目录 获取toc格式目录 获取json格式目录 设置pdf目录 结语 前言 获取pdf目录:主要场景是为了拿到目录信息做编辑,从pdf软件里面一个个复制那肯定费时费力. 设 ...

  5. LC滤波器简单设计法 - 一文读懂LC滤波器简单设计方法及原理介绍,LC值计算方法

    LC滤波器概述 LC滤波器也称为无源滤波器,是传统的谐波补偿装置.LC滤波器之所以称为无源滤波器,顾名思义,就是该装置不需要额外提供电源.LC滤波器一般是由滤波电容器.电抗器和电阻器适当组合而成,与谐 ...

  6. 给html添加图标

    <link rel="icon" type="image/ico" href="images/favicon.ico" />

  7. Optimal binary search trees

    问题 该问题的实际应用 Suppose that we are designing a program to translate text from English to French. For ea ...

  8. 冷饭新炒:理解断路器CircuitBreaker的原理与实现

    前提 笔者之前在查找Sentinel相关资料的时候,偶然中找到了Martin Fowler大神的一篇文章<CircuitBreaker>.于是花了点时间仔细阅读,顺便温习一下断路器Circ ...

  9. django 连接 mysql数据库

    1.安装mysqlclient pip install mysqlclient 或 pycharm --> File --> settings --> Project: (项目名称) ...

  10. 已经编译安装的nginx/tenginx编译增加新模块

    只适用于自行编译安装的nginx配置 业务变更带来的Nginx增加模块需求 由于业务从php转为go开发,需要用到Http2的协议.这种协议在Nginx上需要http_v2_module这个模块的支持 ...