码迷,mamicode.com
首页 > 其他好文 > 详细

安全测试的一些思考总结

时间:2018-09-15 13:47:51      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:构建   ror   存在   入参   签名   服务   登录   数据库   找不到   

 

一、SQL注入

SQL注入就是把SQL命令插入到Web表单然后提交到所在页面请求(查询字符串),从而达到欺骗服务器执行恶意的SQL命令

1、表单类注入

登录时SQL应该是这样: select * from user where username=‘chengzi‘  and password=md5(‘123456‘);

我们现在需要构建一个比如:在用户名输入框中输入: ’ or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为:

select * from user where username=‘‘ or 1=1 #‘  and password=md5(‘123456‘);

等价于

select * from user where username=‘‘ or 1=1;

就可以登录成功了

 

技术分享图片

 

2、从网页传入参数注入

这是SQL注入中最常见的方法,并且根据该注入原理有跟多SQL注入工具

同样,首先应测试是否存在注入漏洞,简单的:’ 或 and 1=1 and 1=2之类的SQL语句。

如果没有检测,直接运行SQL语句,说明有机会注入。

举例:

从参数注入,简单的测试方法是:

① http://www.xxx.com/index.php?id=2

② http://www.xxx.com/index.php?id=2‘ and 1=1

③ http://www.xxx.com/index.php?id=2‘ and 1=2

可以注入的表现:

① 正常显示(这是必然的,不然程序就有错)

② 正常显示,内容基本与①相同

③ 提示BOF或EOF(程序没做任何判断时)、或提示找不到记录(判断了rs.eof时)、或显示内容为空(程序加了on error resume next)

说明未进行特殊字符过滤处理,存在SQL注入漏洞

 

二、其它

1、欺骗后端

 a、设置请求断点进行请求拦截,修改相关传参,测试后端是否做了校验

 如:下单100元的衣服,提交订单时,我们设置请求断点进行拦截,修改参数100元为1元时,再次提交,应该是无法提交成功的,服务端给出提示“金额不足,无法购买!”

 b、并发请求测试多线程是否加锁

 如:余额100元,购买50元的衣服,设置断点拦击请求,并发请求5次,实际购买成功2件,其它3件服务端会给出提示“余额不足,无法购买!”

 c、每日秒杀,每人每日限购1次

 如:~~~~~~~~~

 

2、欺骗前端

a、设置响应断点,修改响应返回数据,测试前端

 如:修改密码,需要输入手机号和验证码,提交后跳转至设置新密码页面,这时我们可以对提交后响应码或响应数据修改为请求成功时的,前端可以越过验证码跳转至设置新密码页面了。

 

3、敏感字段暴露和加密

  a、数据库中存放重要字段需要进行加密处理存放

  如:登录密码、支付密码、签名等

 b、接口避免返回敏感重要字段

  如:身份证号、银行卡号、登录、支付密码

 c、重要功能需进行验证码身份认证

 如:修改密码、转账、支付

4、登录需设置失效时间

5、每日登录失败需有次数限制

 

 

 

~~~~~~~~~~~待续~~~~~~~~~~~~~~~~~~~~

安全测试的一些思考总结

标签:构建   ror   存在   入参   签名   服务   登录   数据库   找不到   

原文地址:https://www.cnblogs.com/chengzi521/p/9650644.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!