![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【sqli-labs】SQL注入学习笔记
通过对sqli-labs靶场的练习和研究,学习SQL注入的各种姿势和防御方法
丶亦洵
这个作者很懒,什么都没留下…
展开
-
【SQLi-Labs】Less-10 Blind- Time based- Double Quotes- String
与上一节原理一样,本节改为双引号封闭,因此不再赘述。具体原理及做法参照:Less-9本节演示使用sqlmap工具辅助进行时间盲注。sqlmap -u http://xxx/Less-10/?id=1 --dbs --level=2 --batch#爆数据库名,因双引号封闭所以需要增加探测深度,因此加入参数--level=2#--batch 参数规定了 默认同意所有询问结果如下:available databases [5]:[*] challenges[*] inform...原创 2021-11-18 15:53:26 · 3591 阅读 · 0 评论 -
【SQLi-Labs】Less-9 Blind- Time based- Single Quotes- String
在某些情况下,不论你输入什么,页面的回显内容完全一样,这时候就需要使用其他手段执行注入,本节要练习的注入方法为时间盲注。IF(arg1,arg2,arg3)SQL中的条件执行语句,用法为,如果满足arg1的条件就执行arg2,反之执行arg3SLEEP(arg)arg的单位是秒,如SLEEP(1),即为系统等待1秒。与布尔盲注原理类似,我们可以构造这样的查询IF(“我的猜测”,sleep(1),1)如果我的猜测正确,就等待1秒,否则就不等待。这时,虽然服务器不会针对...原创 2021-11-18 15:35:38 · 3647 阅读 · 0 评论 -
【SQLi-Labs】Less-8 Blind- Boolian- Single Quotes- String
本节来练习一下布尔盲注。有时候,对目标网站进行注入会有这样的情况,对于用户的输入,页面不会有报错提示,只会有两种结果:1.目标页面有内容(证明用户的输入正确有效)2.目标界面没有内容(证明用户的输入无效,或页面将要显示的不是开发者想要给用户看的内容)总结一句话就是,在某些时候服务器只会反馈你“说”的对不对,也就是判断你的输入为“真”或者为“假”。这时候就要用到布尔盲注来“猜”或者“骗”服务器说出“真话”。多说无益,实战来叙。1.在SQLi-Labs Less-8中,添加参数...原创 2021-11-17 16:26:06 · 3519 阅读 · 0 评论 -
【SQLi-Labs】Less-7 Dump into Outfile
关于本节的注入方法,题目给出了很明显的提示,利用SQL写入文件,利用文件获取webshell。本节前提有2个:1.mysql配置文件对读取和写入没有严格控制的情况,即my.cnf中有一条这样的配置secure_file_priv="/"2.文件写入目录的绝对路径已知;绝对路径我们可以利用Less-1的页面去读取。/Less-1/?id=-1' union select 1,@@basedir,@@datadir --+有了这两个前提就可以通过写入文件获取服务器权限了...原创 2021-11-15 17:46:10 · 1014 阅读 · 0 评论 -
【SQLi-Labs】Less-6 Double Query- Double Quotes- String
本节实现原理和方法和Less-5基本一样,不同的是单引号变双引号,详见【SQLi-Labs】Less-5 GET - Double Injection - Single Quotes - Stringhttps://blog.csdn.net/xw1995115/article/details/121329780?spm=1001.2014.3001.5501本节复现下注入过程。1.利用单引号尝试封闭查询语句,发现未报错2. 利用双引号尝试封闭查询发现报错,因此为双引号封闭的查询语句...原创 2021-11-15 15:16:50 · 905 阅读 · 0 评论 -
【SQLi-Labs】Less-5 GET - Double Injection - Single Quotes - String
本节练习涉及到了一个新的概念:双注入。双注入简单理解为一个select查询里嵌套一个select查询,如果要利用双注入需要人为构造特定的能够造成报错的查询,从而在报错信息里返回我们需要的数据。需要用到的函数和语句有:1.concat() 作用为连接括号里的参数。例concat(1,~,2) 结果为 1~22.floor() 作用为对括号里的非整数进行取整 如1.9取为1,2.1取为23.count() 作用为针对查询结果条数进行计数4.rand() 作用为生成0-1范围内的随机数...原创 2021-11-15 12:50:08 · 493 阅读 · 0 评论 -
【SQLi-Labs】Less-4 GET - Error based - Double Quotes - Stri
和 less-3 原理一样,但引号变成双引号这里不多赘述,构造查询?id=-1") union select 1,database(),user() --+本节结束。原创 2021-11-15 10:35:23 · 191 阅读 · 0 评论 -
【SQLi-Labs】Less-3 GET - Error based - Single quotes with twist
与less-1、less-2原理相同,基于报错提示我们可以大致猜测后台sql逻辑,为了产生报错需要人为制造语法错误,SQL注入中常使用单引号来制造错误?id=1'观察报错提示,发现除了需要封闭单引号外还需要额外封闭一个括号,因此构造以下查询?id=-1') union select 1,database(),user() --+查询被成功执行,可利用union select执行更多查询,至此本节结束...原创 2021-11-15 10:30:06 · 454 阅读 · 0 评论 -
【SQLi-Labs】Less-2 Error based - Intiger based
第二课:基于报错的数字型注入1. 本节与less-1的原理基本一样,不同的是参数去掉了引号包裹2.判断注入点和注入形式http://10.1.2.210:8000/Less-1/?id=2-1执行结果如下2.“2-1”被成功执行为 1,故本题为基于数字型的注入3.构造查询找到回显数量及位置?id=-1 order by 1 --+?id=-1 order by 2 --+?id=-1 order by 3 --+?id=-1 order by 4 --+ .原创 2021-11-12 17:04:34 · 1222 阅读 · 0 评论 -
【SQLi-Labs】Less-1 Error based - Single quotes - String
第一课:基于报错的以单引号包裹的字符型注入1. 根据黄字提示,传入参数IDhttp://10.1.2.210:8000/Less-1/?id=1执行结果如下2.根据题目提示,注入点基于报错,由单引号包裹,并且是字符型注入,判断源码大概为:select * from users where id = '$_GET['id']';3.构造查询找到回显数量及位置?id=1' order by 1 --+?id=1' order by 2 --+?id=1' ord..原创 2021-11-12 16:51:25 · 983 阅读 · 0 评论