Sqli-Labs靶场攻防实战
文章平均质量分 67
本专栏将提供详细的指导和实践,帮助你了解和掌握SQL注入攻击的原理、技巧和防御方法。本专栏将引导你逐步完成SQLi Labs靶场中的各个挑战,从基础知识开始,逐渐深入到高级的攻击和防御技术。
秋说
全栈开发与网安实战导师 | 欢迎订阅优质付费专栏,专注做「新手能看懂、学完能实战」的友好型全栈技术教程。商务合作/项目毕设指导/产品推广/技术支持→私信沟通
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【网络安全】sqli-labs Less-26 解题详析
本关过滤 空格 or and /* # -- / 等符号,可用过滤符如下。使用联合查询,具体原理及解题方法可见专栏:Sqli-Labs靶场专栏。查库名,id=0'%0bunion%0bselect%0b1,database(),3||'1'='1原创 2023-10-21 16:00:40 · 3698 阅读 · 5 评论 -
[网络安全]sqli-labs Less-26a 解题详析
这一关sql语句执行抛出错误后并不在页面输出,所以排除报错注入。可猜测后端查询语句为。原创 2023-10-21 15:54:58 · 3747 阅读 · 1 评论 -
[网络安全]sqli-labs Less-25a 解题详析
不同于25关的是sql语句中对于id没有单引号包含,同时没有输出错误项,故报错注入不能用。有两种方式:延时注入和联合注入;原创 2023-10-21 15:52:00 · 3420 阅读 · 0 评论 -
[网络安全]sqli-labs Less-25 解题详析
and用&&替换 or用||替换。编码,hex,urlencode。故以单引号为跳板实现报错注入。可以看到,单引号产生报错。本关过滤了or和and。原创 2023-10-21 15:49:20 · 3391 阅读 · 0 评论 -
【网络安全】sqli-labs Less-24 解题详析
二次排序注入原理如下:当注册一个名为admin’#的用户后,再对其修改密码,SQL语句如下:UPDATE users SET passwd="New_Pass" WHERE username =' admin' # ' AND password=' xxx'相当于:UPDATE users SET passwd="New_Pass" WHERE username =' admin' 。从而以admin'#为跳板,修改了管理员密码。操作如下:注册admin’# 密码11。原创 2023-10-21 15:45:11 · 3362 阅读 · 0 评论 -
[网络安全]sqli-labs Less-23 解题详析
也就是说,当我们输入的内容为时,查询语句变为相当于然而由于#和- -被注释故查询会失败如何绕过呢?我们只要使单引号数量匹配即可例如,我们可以输入此时查询语句变为即可成功实现sql注入。原创 2023-08-28 20:47:38 · 3896 阅读 · 4 评论 -
【网络安全】sqli-labs Less-22 解题详析
查库名这里构造"的原因可通过页面回显得出,不再赘述。经过加密得到:可知库名为security加密后得到:得到四个表名加密后得到得到三个列:该姿势使用到mid函数,参考文章: mid函数原理、应用及实战讲解以获取username列的数据为例,利用mid函数构造POC:加密后得到:结果如图:接着,我们提取从第 32 个字符开始的长度为 32原创 2023-08-03 07:59:43 · 3901 阅读 · 0 评论 -
【网络安全】sqli-labs Less-21 解题详析
该题考察base64加密的cookie注入。该题有两种注入方式,本文分享手工注入知识,另一种是sqlmap加密注入。sqlmap加密注入参考: 【网络安全】sqlmap加密注入教程+实战详析原创 2023-08-02 16:27:19 · 4082 阅读 · 1 评论 -
【网络安全】sqli-labs Less-20 解题详析
由源码可知,注入类型为单引号注入,注入点为cookie,测试得到正确的用户名为admin,密码为1,登录,抓包后修改cookie即可。该姿势使用到mid函数,参考文章:【mid函数原理、应用及实战讲解】,我们以username列为例,利用mid()函数构造POC如下。原创 2023-08-02 09:21:58 · 3998 阅读 · 1 评论 -
【网络安全】sqli-labs Less-19 解题详析
由代码审计可知,注入点为HTTP_REFERER,且注入类型为',注入语句)#。该题采用报错注入,原理及姿势参考:【报错注入+Sqli-Labs Less-5实战】,查库名。测试得到正确的用户名为admin,密码为1,抓包后修改referer为以下POC:1',extractvalue(1,concat(0x23,database())))#原创 2023-08-02 09:01:12 · 3927 阅读 · 0 评论 -
【网络安全】sqli-labs Less-18 解题详析
这个语句是从 security.users 表中的 username 列中获取用户名,获取到的并不是全部的用户名,而是从第一个字符开始的长度为 32 的子字符串。这里先介绍一下mid()函数,mid()函数是一种字符串函数,用于提取给定字符串的子字符串。该题为基于GET及报错的User-Agent注入,故需在参数后构造POC。函数将从第 7 个字符开始提取长度为 5 的子字符串,结果为。,如果想要提取其中的子字符串。例如,假设有一个字符串。由回显可知,注入类型为。该题采用抓包进行处理。原创 2023-07-29 17:46:57 · 4023 阅读 · 0 评论 -
[网络安全]sqli-labs Less-11 解题详析
以上为[网络安全]sqli-labs Less-11 解题详析,后续将分享[网络安全]sqli-labs Less-12 解题详析,请读者躬身实践。我是秋说,我们下次见。原创 2023-07-29 17:09:14 · 3893 阅读 · 0 评论 -
【网络安全】sqli-labs Less-7 解题详析
INTO OUTFILE 命令是用于将查询结果写入到一个文件中的 MySQL 查询语句。它可以将查询结果保存为文本文件,供进一步处理或导出使用。开始做题前,先了解一下什么是into outflie命令。这将把年龄大于 30 的客户的姓名和电子邮件输出到。联合查询(注入点为3)+into outfile。我们写入文件时,应选择数据库中有写入权限的目录。目录,打开1.txt文件,得到导出的数据库名。说明不是单纯的单引号/双引号注入。例如,假设我们有一个名为。的数据库表,其中包含。然后删除非必要的代码。原创 2023-07-23 09:45:39 · 4365 阅读 · 1 评论 -
【网络安全】sqli-labs Less-8 解题详析
回显正常,故第一个列名的第一个字符为i。所以emails表的其中一个列名为id。同理得到数据库名称为security。同理得到第一个表名称为emails。回显正常,说明第一个字符为e。为3时回显正常,说明列数为3。回显正常,说明有四个表。得到第一个表名称长度为6。故该列第一个字段长度为1。获取该字段中的第一个字符。得到第一个列名长度为2。故数据库名称长度为7。同理:第二个字符为d。原创 2023-07-23 09:46:04 · 4109 阅读 · 0 评论 -
[网络安全]sqli-labs Less-17 解题详析
以上为[网络安全]sqli-labs Less-17 解题详析,后续将分享[网络安全]sqli-labs Less-18 解题详析.我是秋说,我们下次见。原创 2023-07-24 11:25:52 · 3865 阅读 · 1 评论 -
【网络安全】sqli-labs Less-16 解题详析
该题注入类型为双引号加括号注入,其它步骤与Less-15无异。延迟明显,说明第一个表名称的第一个字符为 e。最终得到第一个表名称为emails。同理可得到其它表名。原创 2023-07-24 11:11:56 · 3902 阅读 · 0 评论 -
【网络安全】sqli-labs Less-15 解题详析
本文介绍了基于时间注入的SQL盲注技术。通过sleep()函数判断注入类型为单引号字符型查询,逐步注入获取数据库信息:首先确定库名长度为8,逐字符获取库名"security";然后查得4个表名,如"emails"表;接着获取表列名及数据。通过延迟响应判断ASCII值,最终可获取全部字段内容。该技术适用于无显错回显场景下的数据库信息探测。原创 2023-07-24 10:48:28 · 4184 阅读 · 0 评论 -
【网络安全】sqli-labs Less-14 解题详析
经测试可知注入类型为双引号注入。由上下图可知,注入点个数为2。数据库名为security。原创 2023-07-24 10:01:45 · 3905 阅读 · 0 评论 -
【网络安全】sqli-labs Less-13 解题详析
Less-13与Less-12类似,具体原理不再赘述。由上下两张图回显可知,注入点个数为2。可知注入类型为单引号+括号注入。原创 2023-07-24 10:01:00 · 3881 阅读 · 0 评论 -
【网络安全】sqli-labs Less-10 解题详析
Less-10与Less-9相似,只不过注入方式发生了变化,为双引号注入。页面延迟明显,说明第一个字符的ASCII值大于等于100。页面延迟明显,说明第一个字符的ASCII值大于90。延迟明显,说明第一个表名称的第一个字符为 e。延迟明显,说明第一个列名的第一个字符为i。延迟明显,说明第一个表名称长度为 6。页面延迟明显,说明第一个字符为 s。延迟明显,说明第一列名称长度为 2。回显延迟,说明数据库名长度为8。页面延迟明显,说明表个数为 4。获取第一个列名的第一个字符。延迟明显,说明列数为 2。原创 2023-07-23 09:42:06 · 3930 阅读 · 0 评论 -
【网络安全】sqli-labs Less-9 解题详析
页面延迟明显,说明第一个字符的ASCII值大于等于100。页面延迟明显,说明第一个字符的ASCII值大于90。延迟明显,说明第一个表名称的第一个字符为 e。延迟明显,说明第一个列名的第一个字符为i。延迟明显,说明第一个表名称长度为 6。页面延迟明显,说明第一个字符为 s。最终得到第一个表名称为emails。延迟明显,说明第一列名称长度为 2。回显延迟,说明数据库名长度为8。页面延迟明显,说明表个数为 4。获取第一个列名的第一个字符。延迟明显,说明列数为 2。判断第一个字符,输入。原创 2023-07-23 09:41:23 · 3995 阅读 · 0 评论 -
【网络安全】sqli-labs Less-12 解题详析
通过测试可知注入类型为双引号+括号注入。通过回显可知,库名为security。通过回显可知,有以上四个表。尝试可知注入点个数为2。原创 2023-07-23 09:40:40 · 4075 阅读 · 0 评论 -
【网络安全】sqli-labs Less-6 解题详析
使用子查询 select database(),该语句可以获取当前数据库名称,并返回该名称的字符串表达式;若1" and left((select database()),1)=‘a’–+查询成功,则回显you are in,即数据库名的首字母为a。’, 5) 将返回 Hello,因为它只返回字符串的前5个字符。Left函数是一种字符串函数,可以从一个字符串的左侧开始返回指定数量的字符。其中,str 是要截取的字符串,len 是要返回的字符数。继续猜第二个字母,将sa遍历到se,发现se回显成功。原创 2023-07-23 09:40:04 · 4153 阅读 · 0 评论 -
【网络安全】sqli-labs Less-5 解题详析
updatexml 函数的工作原理是将指定的 XML 数据解析为 DOM(文档对象模型) 文档树,并根据 xpath 表达式找到对应的节点,然后将该节点的内容替换为新值。攻击者在构造注入字符串时,将多条 SQL 查询语句用分号等符号分隔开来,从而让数据库服务器一次性执行多个查询,并返回所有查询的结果。:如果没有随机数,查询返回的结果会按照最后一个 SELECT 语句中的列顺序组成,这可能使得攻击者注入的数据容易被识别和过滤。其中,str 是要截取的字符串,len 是要返回的字符数。原创 2023-05-02 12:39:02 · 4065 阅读 · 0 评论 -
【网络安全】sqli-labs Less-4 解题详析
没有回显,说明该漏洞类型为GET型双引号字符型注入。判断注入点个数,由上图可知,sql语法中给$id加上了()。猜测后端语句为SELECT * FROM xx where id=("$id"),故构造GET1') order by 3 --+,此时后端语句为SELECT * FROM xx where id=("1") order by 3 --+"),即SELECT * FROM xx where id=("-1") order by 3原创 2023-05-02 09:37:12 · 3564 阅读 · 0 评论 -
【网络安全】sqli-labs Less-3 解题详析
判断注入类型:GET1' and '1'='1,回显如下。没有回显,说明该漏洞类型为GET型单引号字符型注入。原创 2023-05-01 20:50:35 · 3492 阅读 · 0 评论 -
【网络安全】sqli-labs Less-2 解题详析
GET - Error based - Intiger based:基于错误的GET整型注入。说明该漏洞类型为整型注入。判断注入点个数,GET1 order by 3,回显如下,说明注入点个数为3个,即可构造语句如下。原创 2023-05-01 20:11:44 · 3418 阅读 · 0 评论 -
【网络安全】sqli-labs Less-1 解题详析
由以上可知,后端通过mysql_fetch_array()获取当前行数据,而注入语句返回的结果又是以行排序的,所以仅返回了位于首行的email表名。group_concat函数能将查询结果集合起来,在Payload2中,由于该函数集合了所有的表名到一行中,导致所有表名被回显。原创 2023-04-27 18:21:11 · 3621 阅读 · 0 评论
分享