钓鱼网站php,偶遇钓鱼网站的一次代码审计「建议收藏」

钓鱼网站php,偶遇钓鱼网站的一次代码审计「建议收藏」偶遇一个钓鱼邮件中的钓鱼网站,并与年华大佬做了代码审计。据说近期全国出现多起钓鱼邮件事件,主要以各大高校为主,已有不少人上当,还需多加注意。分析钓鱼网站钓鱼网站采用常用空间钓鱼CMS搭建,可通过百度搜索下载源码。源码观察源码发现,源码中存在360safe防护机制,无法通过正常方式进行攻击。分析猜测钓鱼网站后台管理页面地址,发现地址为无法知道用户名密码,分析源码,查看是否存在绕过。观察index…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

偶遇一个钓鱼邮件中的钓鱼网站,并与年华大佬做了代码审计。据说近期全国出现多起钓鱼邮件事件,主要以各大高校为主,已有不少人上当,还需多加注意。

分析钓鱼网站

be6462d5f608388e1afb5b2767b052be.png 钓鱼网站采用常用空间钓鱼CMS搭建,可通过百度搜索下载源码。

源码

d02273b1d7ddd5e5e16a5c5dfe99e53d.png

40ba8705f0ece6bb331669951caa1429.png

43922733869e4d48f8fc0284f8db688d.png

7e306186d718f693fec66e4657853777.png

观察源码发现,源码中存在360safe防护机制,无法通过正常方式进行攻击。

分析

猜测钓鱼网站后台管理页面地址,发现地址为

65e113a7d4c28abe0f07a3bbe028bab3.png 无法知道用户名密码,分析源码,查看是否存在绕过。观察index.php页面

69d28cd2056797cd0c35018cab0f81c5.png

发现PHP代码,存在$islogin参数判断,如果$islogin==1,则进行下一步判断,否则跳出

跳转至login.php登陆页面

507ff9bd93b9fff7284cc920f5a04d8f.png

发现index.php页面中引入include参数,传递$islogin参数,查看/include/common.php,找到并打开common.php页面

748edef466b8bb9e56d8b96c9aad2b1a.png

从中发现define(LOGIN_KEY,abchdbb768541)加密密钥从中发现/config.php配置文件以及member.php文件分别对两个文件进行观察

config.php并无有效信息

62d96ed1f9a39156cbcecdfa61921cf2.png

member.php中发现登陆查询数据库逻辑关系

6560807dbc2de6160b92583662405c8a.png

密码判断

首先判断cookie中是否存在islogin参数,如果不存在,则跳出。

如果存在,则对cookie中的admin_user进行base64解码,然后在 fish_admin表中查询并将返回结果赋值给$udata在进行判断.

如果$udata中username值为空,则将cookie中islogin、admin_user、admin_pass赋值为空,跳出登陆。

如果不为空,则继续进行判断,

对$admin_pass进行加密处理。首先拼接数据库查询返回值中的password与LOGIN_KEY也就是刚刚在common.php中查看到的加密密钥。

进行拼接后,再进行sha1加密。

如果$admin_pass加密后的值与cookie中传递的admin_pass的值相同,则$islogin=1,完成登陆,否则islogin、admin_user、admin_pass赋值为空,跳出登陆。

用户名判断

对$_SESSION中的islogin进行判断,如果存在,则判断$_SESSION中admin_user的值。

首先进行base64解码,然后在数据库中fish_admin表中查询,如果cookie中携带的$admin_pass与加密后的密码一致,则返回$islogin=1完成登陆。

登陆绕过

分析过登陆逻辑之后,对登陆继续绕过,到达可以绕过登陆,进入后台。

首先,因为index.php页面中会判断cookie中是否存在islogin=1,所以cookie中需要存在islogin=1

所以,第一个内容为cookie:islogin=1;

接下来判断admin_user。

在member.php页面中发现,SQL语句进行查询是未进行过滤,而是直接拼接,使用传递值。

所以可以通过构造内容’ union select 1,2,3,’1′,5,6#。

SQL语句拼接后便变成SELECT * FROM fish_admin WHERE username=’ ‘union select 1,2,’1’,4,5,6#limit 1

在本地数据库中进行查询尝试,得到返回结果

76160ea5609df5310ac867e1c3f887ef.png

可以发现,查询中password返回值为1

拼接SQL语句中,使用’1’的原因为后面与LOGIN_KEY进行拼接时,需要使用字符串拼接,所以需要使用字符串进行拼接。

这时就会发现,返回值中的password也就是会被下一步的admin_pass进行接受并且拼接密钥进行sha1加密,并对cookie中的admin_pass进行匹配,如果一致,则会绕过登陆。

前一步拼接的SQL语句,使password返回值为1,则先对1与已经得到的LOGIN_KEY继续拼接,得到1abchdbb768541。

然后通过对拼接后的字符串进行sha1加密,得到05b2d871710e7871de3193152c978fa60052ec1d

4a76f32aaa10d2bfcc74c95866a795c4.png

将admin_user也就是’ union select 1,2,’1′,4,5,6#进行base64加密,得到JyB1bmlvbiBzZWxlY3QgMSwyLCcxJyw0LDUsNiM=

ccb5c5a73e10edeb08b79b7acb673830.png

然后将所有得到的信息写入cookie中。cookie:islogin=1;admin_user=JyB1bmlvbiBzZWxlY3QgMSwyLCcxJyw0LDUsNiM=;admin_pass=05b2d871710e7871de3193152c978fa60052ec1d;

然后携带cookie去访问后台页面,则可以直接绕过登陆,进入后台管理。

76abca9ed7f27a959aa69a2ba9c79814.png

1d7e14c39fe01cb2700ef8d08bedf347.png

9cae13436c20f78e91af11238af56d70.png

发现页面数据只显示一页内容,通过分析list.php页面,发现传递page参数,修改page参数可切换下一页。

d244a84fe9ea8565f56961dcebeef58b.png

本次偶遇钓鱼邮件,进入后台后并未对已记录账户信息的QQ进行登陆等操作。

关注我们

Tide安全团队正式成立于2019年1月,是以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防,网络安全,移动终端,安全开发,的IoT /物联网/工控安全等方向。想了解更多Tide安全团队,请关注团队官网:  http://www.TideSec.net或关注公众号:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172686.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月24日 上午7:16
下一篇 2022年8月24日 上午7:36


相关推荐

  • 获取uuid方法_linux获取uuid

    获取uuid方法_linux获取uuid使用网站https://www.uuidgenerator.net/来获取使用python获取importuuidprint(uuid.uuid4())

    2022年8月10日
    9
  • ZYNQ 千兆以太网 学习

    ZYNQ 千兆以太网 学习开发板上提供一个千兆以太网传输接口 Zynq 7000SoC 的 PS 部分包含了两个千兆以太网 MAC 层硬件控制器 与 PSMAC 相连的物理层传输芯片采用的是 RealtekRTL82 VL 本板使用 PSethernet0 的接口分配在 Bank501MIO 16 27 MDC 和 MDIO 分配到 MIO 52 53 RTL8211 和 PS 连接关系的如下表所示

    2026年3月19日
    2
  • 小白零基础教程:安装 OpenClaw(开源个人 AI 助手)赚美金

    小白零基础教程:安装 OpenClaw(开源个人 AI 助手)赚美金

    2026年3月13日
    2
  • %d啥意思java_编程“%d”代表什么意思?

    %d啥意思java_编程“%d”代表什么意思?展开全部%d:表示把数据bai按十进制整型du输出。%o:表zhi示把数据按dao八进制整型版输权出。%x:表示把数据按十六进制整型输出。%u:表示把数据参数按无符号整型输出。%f:显示小数表示的普通浮点数。拓展资料:C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C…

    2022年7月9日
    25
  • 一款不错的Linux命令行下的FTP客户端软件

    一款不错的Linux命令行下的FTP客户端软件文章作者 张宴本文版本 v1 0 最后修改 2008 12 12 转载请注明原文链接 http blog s135 com post 387 一款 Linux 命令行下的 FTP 客户端软件 ncftp 用来作整个目录批量上传 ncftpput 是它的一个附带程序 在 shell 脚本中调用 ncftpput 上传文件到 FTP 服务器 非常方便 详细内容见其官方网站 http

    2026年3月26日
    2
  • linux ntp校时频率,linux ntp校时服务器

    linux ntp校时频率,linux ntp校时服务器弹性云服务器 ECS 弹性云服务器 ElasticCloud 是一种可随时自助获取 可弹性伸缩的云服务器 帮助用户打造可靠 安全 灵活 高效的应用环境 确保服务持久稳定运行 提升运维效率三年低至 5 折 多种配置可选了解详情认证鉴权 https support huaweicloud com api ecs ecs 01 0013 html 如何使用华为云提供的 CentOS Alt

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号