LebiShop商城系统最新版漏洞大礼包
第一个任意用户密码修改
在修改用户登陆密码和支付密码是都没有验证原始密码
在发送修改密码请求时,只需要遍历COOKIE中的userid即可修改全部用户密码
shop.ajax.ajax_userin文件中的setpassword方法
这里直接接受new password,然后跟进当前登陆用户COOKIE中的userid进行修改
第二密码重置
在找回密码处存在缺陷导致可被重置任意用户密码
shop.ajax.ajax_user文件中的User_forgetpwd方法
跟进Email.SendEmail_forgetpwd方法
这里通过email发送邮件,关键是这里的验证code
user.CheckCode = EX_User.MD5(DateTime.Now.ToString());
CheckCode 只是通过当前时间戳进行md5然后发送重置密码邮件如下:
最后通过对比userid的用不的CheckCode 是否等于接收到的这个url中的CheckCode
简单的时间戳很容易被绕过,而且这里没有验证发送一次后就情况前面发送的CheckCode ,所以我们可以短时间内发送过个重置密码邮件,比如:
我们在2秒钟内发送多个重置密码请求,然后我们在遍历处2秒钟内的时间戳并md5
然后遍历md5后的字符串构造重置密码请求即可
第三某接口可之直接拖库
来看看代码
shop.api.api文件中的GetUsers方法
这里通过user_id的个数和size参数的大小,遍历出了用户,包括具体信息如代码中的属性信息
但是这里有一个接口密码apipwd
当请求中的apipwd等于系统中设置的api密码时,即可通过此接口获取全部用户信息
在系统中apipwd是这样获取的:
当默认系统中没有设置APIPassWord时则为空
重要的是此系统默认安装就没有设置APIPassWord,即APIPassWord为空
后台配置,基本设置中
此时我们提交的请求中可设置apipwd=空即可
如下请求即可获取用户信息
同理还能获取系统全部订单信息,shop.api.api文件中的GetOrders方法