出现在用户登录处
/interface/memebermain.php中
espcms验证用户信息的都是采用cookie验证uid的,只要可以伪造就可以任意登录
我们跟踪一下uid的处理方式
这里同时验证了uid和用户名带入数据库查询看是否同一行
我们跟踪下处理uid的函数
在/public/class_connector.php
用户名是取了cookie的值可以控制
但uid值被intval
就是这个intval帮我们达到任意登录的效果
首先我们想注册个4开头后面加任意字母,后面不能是数字什么的
然后我们登录
然后查看cookie找到username的值
然后用这个值覆盖到info的值
这个info的值是验证uid用的
最后刷新就可以登录uid为4这个用户了
可以看到登录成功了
------------------------------------
原理是什么呢,intval起了什么效果呢?
我们的用户名是4test,然后变cookie值是加密过的
把这个值放在处理uid的语句上
就是
为什么登录4呢,因为php是弱类型的语言,所以intval就会把4test理解成4
那样就覆盖了原来的uid,然后就可以任意登录用户了
出现在用户登录处
/interface/memebermain.php中
espcms验证用户信息的都是采用cookie验证uid的,只要可以伪造就可以任意登录
我们跟踪一下uid的处理方式
这里同时验证了uid和用户名带入数据库查询看是否同一行
我们跟踪下处理uid的函数
在/public/class_connector.php
用户名是取了cookie的值可以控制
但uid值被intval
就是这个intval帮我们达到任意登录的效果
首先我们想注册个4开头后面加任意字母,后面不能是数字什么的
然后我们登录
然后查看cookie找到username的值
然后用这个值覆盖到info的值
这个info的值是验证uid用的
最后刷新就可以登录uid为4这个用户了
可以看到登录成功了
------------------------------------
原理是什么呢,intval起了什么效果呢?
我们的用户名是4test,然后变cookie值是加密过的
把这个值放在处理uid的语句上
就是
为什么登录4呢,因为php是弱类型的语言,所以intval就会把4test理解成4
那样就覆盖了原来的uid,然后就可以任意登录用户了