sqlilab less11-less18

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的更多相关文章
- 【sqli-labs】Less18~Less22
Less18: User-Agent注入,有错误回显 感叹一句,越来越难了.现在只能先看代码再分析怎么注入了..... 通过代码,发现username和password均做了校验.但是会有一个插入us ...
- 【sqli-labs】Less11~Less16
学习sqli-labs的笔记,前面的笔记内容比较详细.后面的只记录关键点了. Less11: POST注入, 有回显,有错误提示 从11题起是POST注入,发现有两个输入框.用firefox的F12查 ...
- sqli-labs Less-11 and Less-12
这关是post注入的世界,post注入就是表单中填好数据通常会被送到服务器,然后由服务器将其发送到它要去的地方(比如,送到一个服务器网关程序中,然后由这个程序对其进行处理). 不显示东西,那么加引号等 ...
- sqli-labs less-11 --> less-12
Less-11(报错注入POST方式) 1.判断是否存在注入点 因为是POST 方式的与GET方式稍有不同,可以选择使用burp suite以及火狐的hackbar进行操作,直接在输入框usernam ...
- sqli-lab 第一题 单引号 error based single quotes
一.第一次见面 1.初识 http://localhost/Less-1/ 提示输入id,因此访问http://localhost/Less-1/?id=1 可以继续测试id=2.3.4等的情况,会输 ...
- 【sqli-labs】 less18 POST - Header Injection - Uagent field - Error based (基于错误的用户代理,头部POST注入)
这次username和password都进行了输入校验 但是ip和uagent没有校验 当我们用admin admin登陆成功后,就会一条插入语句 由于程序无条件的信任了浏览器的header信息,那么 ...
- 【sqli-labs】 less11 POST - Error Based - Single quotes- String (基于错误的POST单引号字符型注入)
查看源码,用户名和密码通过post提交 加单引号提交 出现报错,推测对应的SQL语句 , 直接使用or构造永真登录 成功,注意此处登录的用户为表中的第一个用户 需要改变用户可以通过改变筛选条件实现 作 ...
- less11 属性合并
less //+ 合并以后,以逗号分割属性值 .mixin() { box-shadow+: inset 0 0 10px #555 ; } .myclass { .mixin(); box-shad ...
- 2019-10-24:渗透测试,sqli-labe,less18,19关
less19基于错误_POST_Referer_请求头注入 查看关键源码,跟18关不一样的只是,回显的是Referer不是User-Agent,判断INSERT语句结构:INSERT INTO tab ...
随机推荐
- dhtmlxSpreadSheet开源电子表格小部件创建教程
dhtmlxSpreadSheet是用纯JavaScript编写的开源电子表格小部件,可让您快速在网页上添加类似于Excel的可编辑数据表.高度可定制的JavaScript电子表格组件,具有优雅的Ma ...
- 如果只推荐一本 Python 书,我要 Pick 它!
今年二月初,我偶然看到了一条推特: <流畅的Python>一书的作者发布了一条激动人心的消息:他正在写作第二版! 如果要票选最佳的 Python 进阶类书目,这本书肯定会是得票率最高的书籍 ...
- Hibernate关系映射之many-to-many(多对多)
在表设计中,我们一般都会考虑表与表之间的关系,现在我来介绍一下表与表之间的几种对应关系many-to-many 多对多 比如一个用户可以有多种角色 一种角色可以对用多个不同的用户所以角色和用户之间的关 ...
- pyqy5 程序实例1
import sys from PyQt5.QtWidgets import QMainWindow,QApplication from PyQt5.QtGui import QIcon class ...
- 利用数据库拿shell的一些姿势
0x01.利用MySQL命令导出getshell 利用条件: 1.拥有网站的写入权限 2.Secure_file_priv参数为空或者为指定路径 3.知道网站的绝对路径 方法: 通过into outf ...
- 初始化vue项目
1.创建vue项目命令 vue init webpack deaxios # 使用脚手架创建项目 deaxios(项目名,随便取得) cd deaxios # 进入项目 npm install axi ...
- MySQL图形界面客户端
图形界面客户端 使用图形界面客户端操作数据库更直观.方便.下面三个客户端都能操作MySQL,各有各自的优点. 1.Navicat Premium 下载安装包下载 关注公众号[轻松学编程],然后回复[n ...
- Java中的微信支付(3):API V3对微信服务器响应进行签名验证
1. 前言 牢记一句话:公钥加密,私钥解密:私钥加签,公钥验签. 微信支付V3版本前两篇分别讲了如何对请求做签名和如何获取并刷新微信平台公钥,本篇将继续展开如何对微信支付响应结果的验签. 2. 为什么 ...
- Mybatis执行SQL的完整过程及四大组件介绍
一切的执行从MapperProxy开始,MapperProxy是MapperProxyFactory使用SqlSession创建出来的.所以MapperProxy中包含SqlSession. 可以看到 ...
- vue3.0-如何切换路由-路由模式ts
如何更换路由模式 vue3版本如何切换路由模式?(注:更改后要重启下项目才能看到效果.) 博主,我搜了大半天的,你是怎么找到的? 如下图可看到