• SQL注入——二次注入,可以用于篡改他人数据,一般代码分析发现,扫描工具是很难的


    01 二次注入原理

    二次注入可以理解为,攻击者构造的恶意数据存储在数据库后,恶意数据被读取并进入到SQL查询语句所导致的注入。防御者可能在用户输入恶意数据时对其中的特殊字符进行了转义处理,但在恶意数据插入到数据库时被处理的数据又被还原并存储在数据库中,当Web程序调用存储在数据库中的恶意数据并执行SQL查询时,就发生了SQL二次注入。

    二次注入,可以概括为以下两步:

    • 第一步:插入恶意数据
      进行数据库插入数据时,对其中的特殊字符进行了转义处理,在写入数据库的时候又保留了原来的数据。

    • 第二步:引用恶意数据
      开发者默认存入数据库的数据都是安全的,在进行查询时,直接从数据库中取出恶意数据,没有进行进一步的检验的处理。

    配合下图可以有更好的理解:

    二次注入

    02 二次注入方法

    这里我们使用sqli-labs/Less24为例,进行二次注入方法的练习。

    打开页面可以看到一个登陆界面,尝试用admin'#进行注入,失败。

    测试失败

    部分源代码如下:



    作者:Ackerzy
    链接:https://www.jianshu.com/p/3fe7904683ac
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    objectivec随机数
    UITableView中多个UITextField时UITableView的滚动和键盘的隐藏
    objectivec用图片设置backgroundcolor
    SQL代码添加字段
    如何让第三方库暂时不用arc
    快速统计表中的记录总数
    商务报盘英语
    对话:职业健康和安全
    你适合买房还是租房?
    怎样与同事和谐相处
  • 原文地址:https://www.cnblogs.com/bonelee/p/14906454.html
Copyright © 2020-2023  润新知