随笔分类 -  sqli-labs

摘要:Background-6 服务器(两层)架构 首先介绍一下29,30,31这三关的基本情况: 服务器端有两个部分:第一部分为tomcat为引擎的jsp型服务器,第二部分为apache为引擎的php服务器,真正提供web服务的是php服务器。工作流程为:client访问服务器,能直接访问到tomcat 阅读全文
posted @ 2016-08-11 22:22 lcamry 阅读(1839) 评论(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 阅读(1116) 评论(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 阅读(601) 评论(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 阅读(476) 评论(0) 推荐(0) 编辑
摘要:Background-7 宽字节注入 Less-32,33,34,35,36,37六关全部是针对'和\的过滤,所以我们放在一起来进行讨论。 对宽字节注入的同学应该对这几关的bypass方式应该比较了解。我们在此介绍一下宽字节注入的原理和基本用法。 原理:mysql在使用GBK编码的时候,会认为两个字 阅读全文
posted @ 2016-08-11 22:17 lcamry 阅读(1494) 评论(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 阅读(1293) 评论(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 阅读(748) 评论(0) 推荐(0) 编辑
摘要:Less-34 本关是post型的注入漏洞,同样的也是将post过来的内容进行了 ' \ 的处理。由上面的例子可以看到我们的方法就是将过滤函数添加的 \ 给吃掉。而get型的方式我们是以url形式提交的,因此数据会通过URLencode,如何将方法用在post型的注入当中,我们此处介绍一个新的方法。 阅读全文
posted @ 2016-08-11 22:14 lcamry 阅读(1371) 评论(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 阅读(624) 评论(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 阅读(870) 评论(1) 推荐(0) 编辑
摘要:Less-37 本关与34关是大致相似的,区别在于处理post内容用的是mysql_real_escape_string()函数,而不是addslashes()函数,但是原理是一直的,上面我们已经分析过原理了,这里就不进行赘述了。 我们依旧利用万能密码的思路进行突破。 提交内容为下图所示: 可以看见 阅读全文
posted @ 2016-08-11 22:11 lcamry 阅读(701) 评论(0) 推荐(0) 编辑
摘要:第三部分/page-3 Stacked injection Background-8 stacked injection Stacked injections:堆叠注入。从名词的含义就可以看到应该是一堆sql语句(多条)一起执行。而在真实的运用中也是这样的,我们知道在mysql中,主要是命令行中,每 阅读全文
posted @ 2016-08-11 22:06 lcamry 阅读(2316) 评论(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 阅读(1000) 评论(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 阅读(572) 评论(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 阅读(546) 评论(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 阅读(497) 评论(0) 推荐(0) 编辑
摘要:Less-42 Update更新数据后,经过mysql_real_escape_string()处理后的数据,存入到数据库当中后不会发生变化。在select调用的时候才能发挥作用。所以不用考虑在更新密码处进行注入,这关和二次注入的思路是不一样的。 本关从login.php源代码中分析可知: Pass 阅读全文
posted @ 2016-08-11 21:53 lcamry 阅读(1035) 评论(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 阅读(500) 评论(0) 推荐(0) 编辑
摘要:Less-44 本关是基于盲注的,这里盲注主要是要没有报错信息,所以要采用盲注。这关与42关的区别就在于没有报错信息,同时,我们使用同样方式的payload: 登录 username:admin Password:a';insert into users(id,username,password) 阅读全文
posted @ 2016-08-11 21:51 lcamry 阅读(677) 评论(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 阅读(494) 评论(0) 推荐(0) 编辑