zoukankan      html  css  js  c++  java
  • 安全测试的一些思考总结

    一、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、表单提交类,提交javascript死循环代码

     <script>
     for(i=0;i<1;i--)
     {
     alert("msg")
     }
     </script>

    三、其它

    1、欺骗后端

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

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

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

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

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

     如:~~~~~~~~~

    2、欺骗前端

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

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

    3、敏感字段暴露和加密

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

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

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

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

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

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

    4、登录需设置失效时间

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

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

  • 相关阅读:
    CLR基础
    Windows7下使用Shell32.dll出现没有实现接口的错误的解决办法
    Python学习
    Python学习
    开发常识之Linux用户及其权限管理
    (转)简单明晰的Jupyter Notebook总结与指南
    Oracle系列数据库版本区别
    应用场景区别-MongoDB与MySQL的选择比较
    我的博客(个人空间)地址更新说明
    (转)Spark与Map-Reduce区别对比
  • 原文地址:https://www.cnblogs.com/chengzi521/p/9650644.html
Copyright © 2011-2022 走看看