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 ...
随机推荐
- 第十三章 Linux三剑客之老二—sed
一.sed #擅长增删改查 替换 选项: -n #取消默认输出 -r #支持扩展正则使用 -i #改变文件内容 -e #允许多项编辑 内部指令: p #print 打印 d # 删除 排除 a ...
- 详解GaussDB(DWS) explain分布式执行计划
摘要:本文主要介绍如何详细解读GaussDB(DWS)产生的分布式执行计划,从计划中发现性能调优点. 前言 执行计划(又称解释计划)是数据库执行SQL语句的具体步骤,例如通过索引还是全表扫描访问表中的 ...
- 面经手册 · 第14篇《volatile 怎么实现的内存可见?没有 volatile 一定不可见吗?》
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.码场心得 你是个能吃苦的人吗? 从前的能吃苦大多指的体力劳动的苦,但现在的能吃苦已经包括太 ...
- Linux系统安装Redis(2020最新最详细)
2020最新Linux系统发行版ContOS7演示安装Redis 为防止操作权限不足,建议切换root用户,当然如果你对Linux命令熟悉,能够自主完成权限更新操作,可以不考虑此推荐. 更多命令学习推 ...
- Vue实例中封装api接口的思路 在页面中用async,await调用方法请求
一般我们写小型的项目是用不到封装axios实例 但是当我们写大型项目时 接口有时候多到有上百个接口,那我们在请求一次调用一次接口,接口上好多都是重复的,这个时候我们就可以封装axios实例,既节省了 ...
- 在java的多态调用中,new的是哪一个类就是调用的哪个类的方法。
在java的多态调用中,new的是哪一个类就是调用的哪个类的方法.(x) 原因: ava多态有两种情况:重载和覆写 在覆写中,运用的是动态单分配,是根据new的类型确定对象,从而确定调用的方法: 在重 ...
- frida框架hook参数获取方法入参模板
python脚本 # -*- coding: utf-8 -*- import logging import frida import sys logging.basicConfig(level=lo ...
- 微信小程序UI自动化: minium文档部署
目录 参考资料 1. 在线文档(临时) 2. 本地部署 参考资料 https://git.weixin.qq.com/minitest/minium-doc 1. 在线文档(临时) 其实上面的链接里面 ...
- Filebeat 根据不同的日志设置不同的索引
平时在物理机上使用 Filebeat 收集日志时,会编写多个 filebeat 配置文件然后启动多个 filebeat 进程来收集不同路径下的日志并设置相对应的索引.那么如果将所有的日志路径都写到一个 ...
- error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
python3 是用 VC++ 14 编译的, python27 是 VC++ 9 编译的, 安装 python3 的包需要编译的也是要 VC++ 14 以上支持的. 可以下载安装这个: 链接:htt ...