超长字符串截断注入详解数据库

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

超长字符串截断注入详解数据库

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

  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这个账号了)危害还是很大的。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/4915.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论