随笔分类 - sqli-labs
摘要:Less-15 本关没有错误提示,那么我们只能靠猜测进行注入。这里我直接从源代码中看到了sql语句 @$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1"; 那这里对id进行 ' id' 的处理。 本关我们利用延时注入进行。 猜测数据库名第一位: un...
阅读全文
摘要:Less-16 本关我们的处理方法和less15是一样的,同样的使用延时注入的方法进行解决。这里直接从源代码中看到对id进行 ("id")的处理。(请自行测试) 提交的payload: uname=admin")and If(ascii(substr(database(),1,1))=115,1,s
阅读全文
摘要:Background-4 增删改函数介绍 在对数据进行处理上,我们经常用到的是增删查改。接下来我们讲解一下mysql 的增删改。查就是我们上述总用到的select,这里就介绍了。 增加一行数据。Insert 简单举例 insert into users values('16','lcamry','lcamry'); 删除 2.删数据: deletefrom表...
阅读全文
摘要:Less-17 本关我们可以看到是一个修改密码的过程,利用的是update语句,与在用select时是一样的,我们仅需要将原先的闭合,构造自己的payload。 尝试报错 Username:admin Password:1' You have an error in your SQL syntax;
阅读全文
摘要:Background-5 HTTP头部介绍 在利用抓包工具进行抓包的时候,我们能看到很多的项,下面详细讲解每一项。 HTTP头部详解 1、 Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。 2、 Accep
阅读全文
摘要:Less-18 本关我们这里从源代码直接了解到 对uname和passwd进行了check_input()函数的处理,所以我们在输入uname和passwd上进行注入是不行的,但是在代码中,我们看到了insert() $insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$...
阅读全文
摘要:Less-19 从源代码中我们可以看到我们获取到的是HTTP_REFERER 那和less18是基本一致的,我们从referer进行修改。 还是像less18一样,我们只给出一个示例 将referer修改为'and extractvalue(1,concat(0x7e,(select @@basedir),0x7e)) and '1'='1 可以看到mysql的路径了。 请发散思维思考其他的呦...
阅读全文
摘要:Less-20 从源代码中我们可以看到cookie从username中获得值后,当再次刷新时,会从cookie中读取username,然后进行查询。 登录成功后,我们修改cookie,再次刷新时,这时候sql语句就会被修改了。 我们使用temper data进行演示。 如上图所示,我们修改cooki
阅读全文
摘要:Less-21 本关对cookie进行了base64的处理,其他的处理流程和less20是一样的。 我们这里可以利用less20同样的方法,但是需要将payload进行base64编码处理(注意这里对uname进行了 ('uname')的处理) Cookie: uname=YWRtaW4xJylhbmQgZXh0cmFjdHZhbHVlKDEsY29uY2F0KDB4N2UsKHNlbGVjd...
阅读全文
摘要:Less-22 本关和less20、less21是一致的,我们可以从源代码中看到这里对uname进行了"uname"的处理,可以构造payload: admin1"and extractvalue(1,concat(0x7e,(select database()),0x7e))# Payload进行
阅读全文
摘要:第二部分/page-2 Advanced injection Less-23 Sql语句为$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";此处主要是在获取id参数时进行了#,--注释符号的过滤。 Solution: http://127.0.0
阅读全文
摘要:Less-24 Ps:本关可能会有朋友和我遇到一样的问题,登录成功以后没有修改密码的相关操作。此时造成问题的主要原因是logged-in.php文件不正确。可重新下载解压,解压过程中要主要要覆盖。 本关为二次排序注入的示范例。二次排序注入也成为存储型的注入,就是将可能导致sql注入的字符先存入到数据
阅读全文
摘要:Less-25 本关主要为or and过滤,如何绕过or和and过滤。一般性提供以下几种思路: 大小写变形 Or,OR,oR 编码,hex,urlencode 添加注释/*or*/ 利用符号 and=&& or=|| 暂时只想到这些,还有的话可以补充。 本关利用方法(4)进行。 报错注入 or示例
阅读全文
摘要:Less-25a 不同于25关的是sql语句中对于id,没有''的包含,同时没有输出错误项,报错注入不能用。其余基本上和25示例没有差别。此处采取两种方式:延时注入和联合注入。 http://127.0.0.1/sqllib/Less-25a/?id=-1%20UNION%20select%201,
阅读全文
摘要:Less-26 TIPS:本关可能有的朋友在windows下无法使用一些特殊的字符代替空格,此处是因为apache的解析的问题,这里请更换到linux平台下。 本关结合25关,将空格,or,and,/*,#,--,/等各种符号过滤,此处对于and,or的处理方法不再赘述,参考25.此处我们需要说明两
阅读全文
摘要:Less-26a 这关与26的区别在于,sql语句添加了一个括号,同时在sql语句执行抛出错误后并不在前台页面输出。所有我们排除报错注入,这里依旧是利用union注入。 sql语句为SELECT * FROM users WHERE id=('$id') LIMIT 0,1 我们构造payload:
阅读全文
摘要:Less-27 本关主要考察将union,select和26关过滤掉的字符。此处我们依旧和26关的方式是一样的,只需要将union和select改为大小写混合就可以突破。 示例:127.0.0.1/sqllib/Less-27/?id=100'unIon%a0SelEcT%a01,database(
阅读全文
摘要:Less-27a 本关与27关的区别在于对于id的处理,这里用的是 " ,同时mysql的错误不会在前端页面显示。 我们根据27关直接给出一个示例payload: http://127.0.0.1/sqllib/Less-27a/?id=100"%a0UnIon%a0SElecT%a01,user(
阅读全文
摘要:Less-28 本关考察内容与27关没有太大的差距,我们直接给出一个payload: http://127.0.0.1/sqllib/Less-28/?id=100')union%a0select(1),(user()),(3)||('1
阅读全文
摘要:Less-28a 本关与28基本一致,只是过滤条件少了几个。 http://127.0.0.1/sqllib/Less-28a/?id=100%27)unIon%0bsElect%0b1,@@basedir,3||(%271
阅读全文