zoukankan      html  css  js  c++  java
  • 超长字符串截断注入

    该注入方法也是昨天看到某技术交流群聊到,闻所未闻便想要学习了,今天看某微信公众号的时候又再次看到关于”长字符串截断注入“的文章.

    但是经过一番了解,其实这个注入姿势很难找到了,因为它需要满足以下条件。

      1.可以注册用户,而且可以注册带有空格的用户

      2.你需要知道管理员的账号

    看下面CODE

    mysql> create table test(
        -> id int,
        -> username varchar(20),
        -> password varchar(30)
        -> );
    Query OK, 0 rows affected (0.31 sec)
    
    mysql> insert into test(id,username,password) values(1,"admin                                                                                            hello  ","aaaaaaaa");
    Query OK, 1 row affected, 1 warning (0.12 sec)
    
    mysql> select id,username,password from test;
    +------+----------------------+----------+
    | id   | username             | password |
    +------+----------------------+----------+
    |    1 | admin                | aaaaaaaa |
    +------+----------------------+----------+
    1 row in set (0.02 sec)

    username的最大长度是20.可是我插入的明显超过20,而在使用select查询的时候,username超过的部分被截取掉了。

    倘若现在有一个sql语句,它可以是完完全全的没有注入,但是如果允许空字符注册的话,那么就会导致我们今天的这个“长字符串截断注入

    select id,username,password from users where username = 'admin';

    假设管理员的账号就是admin,那么我们就去注册一个admin                                                                                                的用户.(PS:后面有哦很多空格哦,等待被截取掉就直接替换掉admin这个账号了)危害还是很大的。

  • 相关阅读:
    Webpack4不求人(5) ——编写自定义插件
    Webpack4不求人(4)——编写自定义Loader
    Webpack4不求人(3) ——性能优化
    Webpack4不求人(2) ——手把手搭建TypeScript+React16+ReactRouter5同构应用脚手架
    Shell脚本快速入门(1)
    kafka二进制协议分析与PHP客户端开发
    深入浅出ES6的标准内置对象Proxy
    ES6的Set类型
    深入浅出ES6的迭代器
    Javascript事件系统
  • 原文地址:https://www.cnblogs.com/xishaonian/p/6388485.html
Copyright © 2011-2022 走看看