钓鱼网站代码审计

释放双眼,带上耳机,听听看~!

特别重要:本文非原创,我也是代码审计初学者,但这个是我审计明白且复现成功所以才投稿 出来的,希望大佬轻喷!

原文链接https://www.sogou.com/link?url=hedJjaC291NFIhZSNmo8po4w3iUBcdYtRm_XVBxHxDh2G5GsfcEnKCHmfGkNvdZG

配置好钓鱼网站后就可以开始了

1.打开editplus,首先include,因为这里包含了很多重要文件,包括在cms审计里面这个include依然很重要

2.打开include,然后是这个看到360safe我就知道是360webscan,因为最近老是碰到这个,自己也没有啥好绕过的方法,全都是拦截规则,可以自己看看,同目录下的webscan_cache文件则是控制防御开关的,防御全开,确实不是很好搞

3.来看include下的php文件,第一个是common,其中这个login_key比较重要,因为后续复现需要用到它

4.其中db.class.php为数据库类文

件,function为函数定义文件,都没啥好看的,看这个kill文件,我最开始以为这个$_server接受xff,但是没有对$list进行过滤,所以我以为这里有一个xff注入,但是本地复现没有成功,应该是360webscan的原因

5.接下来注意了,member为一个登陆验证文件,第一段代码:

首先接受admin_user,然后解码代入数据库中查询,查询结果赋给$udata,再次判断如果$udata中的username为空,则设置islogin  admin_user admin_pass均为空,则跳出登陆;

第二段代码:

$udata接收password再与login_key进行拼接再利用sha1加密赋值给$admin_pass,如果这个admin_pass与cookie中传递的admin_pass的值相同则设置islogin=1(代表登陆成功)否则admin_pass为空;

第三段代码与第一第二段类似,只不过$_cookie换成了$_session,避免篇幅过长所以不做讲解

6.因为islogin=1代表登陆成功,所以cookie中这个必须有,由于member里面没有对sql语句过滤,所以我们操纵一下数据库,代入一条命令,查询一个假的值就可以了,所以命令为SELECT * FROM fish_admin WHERE username=” union select 1,2,’1′,4,5,6# limit 1,这里是把pwd的值设置为1,然后我们就可以设置user为’ union select 1,2,’1′,4,5,6#

因为密码为1,所以密码应该为1拼接上login_key的sha1加密

7.利用方法,admin_user=’ union select 1,2,’1′,4,5,6#

admin_pass=1abchdbb768541   的sha1加密

islogin=1

加密后为JyB1bmlvbiBzZWxlY3QgMSwyLCcxJyw0LDUsNiM=

05b2d871710e7871de3193152c978fa60052ec1d

找到后台

复现成功,另外,求一些小伙伴一起打下gkctf,有意者可以私聊我qq1852965621。

WEB安全

黑吃黑吃黑Bc源码老板的艰难道路

2020-5-28 15:54:37

WEB安全

HTTP基础

2020-5-28 16:02:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索