漏洞测试平台——SQLi-labs

SQLi-labs是个专门用来学习SQL注入的开源漏洞测试平台,基于php+mysql开发,所以里面涉及的SQL注入都是mysql语法。 下载的地址是https://github.com/Audi-1/sqli-labs 下载安装按照readme里面要求即可,这里不多废话。下面是每个题目的具体分析: 1、error based string sqli 首先是源码: 我们可以看到当mysql语句正确执行的时候,应用会打印结果,但是没有正确执行的时候会打印错误,所以这里我们并不能像有回显位注入那样直接注入mysql语句。我们需要利用报错信息进行注入。 原理其实比较简单,一般都是利用某函数X    比如X(exp)  mysql函数在执行的时候会先执行函数里面的exp,获取返回值,然后再把exp的返回值作为参数给X进行执行,当exp的返回值不符合X的传参要求时,会导致query错误,打印出错误。 直接贴上一个老毛子整理的error based的cheat sheet:https://blackfan.ru/mysql_game/ 构造exp:‘|polygon((select*from(select name_const(version(),1))x))%23 2、error based integer sqli 原理同一,只不过是注入点的变量是integer exp:|polygon((select*from(select name_const(version(),1))x))%23 3、注入点变量外有单引号和括号,在exp中添加对应的符号即可: exp:’)|polygon((select*from(select name_const(version(),1))x))%23 4 、双引号加括号的error based 注入,变下exp即可: exp: “)|polygon((select*from(select name_const(version(),1))x))%23 5、string 单引号注入同第一题 exp: ‘ |polygon((select*from(select name_const(version(),1))x))%23 6、string 双引号注入 exp: “|polygon((select*from(select name_const(version(),1))x))%23 7、我们先看下源码: error_reporting(0); 这句话表示不再显示具体错误,只会显示“You have an error in your SQL syntax“,所以这里我们不能用前几题的error based注入,根据标题的提示“dump […]

从零开始学安全

最近投了一堆安全的summer intern,结果不是被拒就是杳无音讯,一个oa或者是电面的机会都没有,自己也实在提不起兴趣找SDE的工作。然后回顾自己去年一年,在学校挣扎着完成课程和在实验室写写代码,安全方面似乎没有丝毫的进步。 我发现自己总是在一件事情上不能坚持很长时间,还总是给自己找一堆事情来做,显得自己很牛逼,结果最后很多事情都做不好。 想来想去,发现就是自己还是太浮躁了,口口声声说自己对什么什么感兴趣,结果都是嘴上吹牛逼说说几个名词。如果要让我不借助网络来解释某个东西的原理,用中文十有八九都说不清楚,用英文就更不用说了。 眼看着自己还有一年就要毕业了,虽然说找到一个工作不是什么难事,但是自己浑浑噩噩的样子自己实在看不过去,这里自己做一个小小的计划,踏踏实实从零开始学习安全,然后自己的学习过程都用博客进行记录。对于遇到的每个问题都仔细研究,深入了解原理,learn it and hack it。 作为一个开篇的文章应该有个详细的计划,这里就罗列一下: 1、漏洞测试平台 2、CVE web类漏洞 3、bug bounty 4、自动化脚本 以上内容会不定时更新