最重要的是思路——一个SQL注入测试的思路整理
2017-03-02 22:03
381 查看
此文是学习小强老师的《安全测试普及课【内容更新,小强出品】》中在webgoat上做的一个练习的思路整理。
例子是webgoat上的Injection Flaws-Blind String SQL Injection这个例子
首先最重要的一定是看明白需求,对业务的了解远比技术重要得多!
本需求是需要猜出pins表中在cc_number = 4321432143214321时name字段的值,题目说明中提示了name字段的类型。
总体的方法是在sql中写入对name字段每一位字符的ascii码的判断,若判断成立则系统会提示valid。
一上来先不必着急去判断字符的ascii码,对于字符串,首先要确定它的长度,不然怎么知道要判断几个字符呢。
判断长度是在条件中使用char_length函数。长度的确认采用二分法的思想,先根据经验估计一个长度,然后根据判断结果,用二分法逐渐确定。比如我一开始将长度写成<=10,然后逐渐缩小范围,很快就找到了正确的长度。
然后逐个字符判断就可以了。对于第一个字符,使用ascii函数来获取ascii值就可以了;由于ascii函数返回的是字符串首字母的ascii值,对于第二个及之后的字符需要将substring函数和ascii函数配合使用。
判断时有个小技巧,按常理,往往字符串首字母是大写字母,之后的是小写字母。这里可以先只在大写字母里查找第一个字符,在小写字母里查找随后的字符。如果真是这样的,基本可以节约一半时间。虽然这种SQL注入属于盲注,但是有了正确的思路,就可以大大减少盲目的程度。
最后还是要强调一下,这也是小强老师所强调的:我们是安全测试人员,不是黑客,不要拿别人的网站来练习。攻击别人的网站不但要承担法律责任,也违反道德。我在这里也仅仅是记录解决问题的思路,为测试工作服务。我是菜鸟,这里用到的SQL注入知识都是最基础的,没什么技术含量。最重要的是解决问题的思路,这会对我们的测试工作产生决定性的影响。我不会去引导任何有不良意图的人,任何打歪主意的人也都与本人无关。各位技术大牛们,如果真的对黑别人网站有兴趣,就做个红帽子,把境外那些反华网站全端了吧!
例子是webgoat上的Injection Flaws-Blind String SQL Injection这个例子
首先最重要的一定是看明白需求,对业务的了解远比技术重要得多!
本需求是需要猜出pins表中在cc_number = 4321432143214321时name字段的值,题目说明中提示了name字段的类型。
总体的方法是在sql中写入对name字段每一位字符的ascii码的判断,若判断成立则系统会提示valid。
一上来先不必着急去判断字符的ascii码,对于字符串,首先要确定它的长度,不然怎么知道要判断几个字符呢。
判断长度是在条件中使用char_length函数。长度的确认采用二分法的思想,先根据经验估计一个长度,然后根据判断结果,用二分法逐渐确定。比如我一开始将长度写成<=10,然后逐渐缩小范围,很快就找到了正确的长度。
然后逐个字符判断就可以了。对于第一个字符,使用ascii函数来获取ascii值就可以了;由于ascii函数返回的是字符串首字母的ascii值,对于第二个及之后的字符需要将substring函数和ascii函数配合使用。
判断时有个小技巧,按常理,往往字符串首字母是大写字母,之后的是小写字母。这里可以先只在大写字母里查找第一个字符,在小写字母里查找随后的字符。如果真是这样的,基本可以节约一半时间。虽然这种SQL注入属于盲注,但是有了正确的思路,就可以大大减少盲目的程度。
最后还是要强调一下,这也是小强老师所强调的:我们是安全测试人员,不是黑客,不要拿别人的网站来练习。攻击别人的网站不但要承担法律责任,也违反道德。我在这里也仅仅是记录解决问题的思路,为测试工作服务。我是菜鸟,这里用到的SQL注入知识都是最基础的,没什么技术含量。最重要的是解决问题的思路,这会对我们的测试工作产生决定性的影响。我不会去引导任何有不良意图的人,任何打歪主意的人也都与本人无关。各位技术大牛们,如果真的对黑别人网站有兴趣,就做个红帽子,把境外那些反华网站全端了吧!
相关文章推荐
- 个人整理的关于安全的一个基本思路-渗透测试
- C# 一个简单分词程序的思路和代码(六) 源代码 ,测试程序,词库下载地址
- 一个简单功能的测试思路
- CodeReview是开发中的重要一个环节,整理了一些关于jupiter for java
- 最全Pycharm教程(9)——创建并运行一个基本的Python测试程序 --待整理
- 上个星期回学校之前,整理了的一个模块的功能(辅助测试之用)
- 老徐杂谈:作为一个测试人员,思维比技术重要!
- 最近做一个新闻类项目,用到调用新浪微博接口,经过研究测试整理步骤如下:先根据此内容获取App Key和Secret Key
- 单元测试整理(五)—— Mock篇,测试一个servlet
- 在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
- 做了五年的程序员啦,从今天开始,没解决一个问题,坚持把思路整理出来,发布到网上分享,对自己对他人都有益处
- asp.net防止sql注入,删除关键字的一个重要方法
- 老徐杂谈:作为一个测试人员,思维比技术重要!
- JAVA的StringBuffer类(转载整理)____非常重要的一个类,线程安全,不用每次创建一个对象,以及和String的区别
- 一个很简单却很全面的心理测试:什么对你最重要?
- 一个非常重要的测试问题
- 接口测试-自动化-Java-思路整理后
- ThinkPHP框架通杀所有版本的一个SQL注入漏洞详细分析及测试方法
- iOS学习重要知识点整理02-进程和线程的一个简单解释
- CSU 1811 Tree Intersection 处理树问题的一个重要思路!!!