钓鱼网站php,偶遇钓鱼网站的一次代码审计
偶遇一个钓鱼邮件中的钓鱼网站,并与年华大佬做了代码审计。据说近期全国出现多起钓鱼邮件事件,主要以各大高校为主,已有不少人上当,还需多加注意。
分析钓鱼网站
钓鱼网站采用常用空间钓鱼CMS搭建,可通过百度搜索下载源码。
源码
观察源码发现,源码中存在360safe防护机制,无法通过正常方式进行攻击。
分析
猜测钓鱼网站后台管理页面地址,发现地址为
无法知道用户名密码,分析源码,查看是否存在绕过。观察index.php页面
发现PHP代码,存在$islogin参数判断,如果$islogin==1,则进行下一步判断,否则跳出
跳转至login.php登陆页面
发现index.php页面中引入include参数,传递$islogin参数,查看/include/common.php,找到并打开common.php页面
从中发现define(LOGIN_KEY,abchdbb768541)加密密钥从中发现/config.php配置文件以及member.php文件分别对两个文件进行观察
config.php并无有效信息
member.php中发现登陆查询数据库逻辑关系
密码判断
首先判断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
在本地数据库中进行查询尝试,得到返回结果
可以发现,查询中password返回值为1
拼接SQL语句中,使用'1'的原因为后面与LOGIN_KEY进行拼接时,需要使用字符串拼接,所以需要使用字符串进行拼接。
这时就会发现,返回值中的password也就是会被下一步的admin_pass进行接受并且拼接密钥进行sha1加密,并对cookie中的admin_pass进行匹配,如果一致,则会绕过登陆。
前一步拼接的SQL语句,使password返回值为1,则先对1与已经得到的LOGIN_KEY继续拼接,得到1abchdbb768541。
然后通过对拼接后的字符串进行sha1加密,得到05b2d871710e7871de3193152c978fa60052ec1d
将admin_user也就是' union select 1,2,'1',4,5,6#进行base64加密,得到JyB1bmlvbiBzZWxlY3QgMSwyLCcxJyw0LDUsNiM=
然后将所有得到的信息写入cookie中。cookie:islogin=1;admin_user=JyB1bmlvbiBzZWxlY3QgMSwyLCcxJyw0LDUsNiM=;admin_pass=05b2d871710e7871de3193152c978fa60052ec1d;
然后携带cookie去访问后台页面,则可以直接绕过登陆,进入后台管理。
发现页面数据只显示一页内容,通过分析list.php页面,发现传递page参数,修改page参数可切换下一页。
本次偶遇钓鱼邮件,进入后台后并未对已记录账户信息的QQ进行登陆等操作。
关注我们
Tide安全团队正式成立于2019年1月,是以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防,网络安全,移动终端,安全开发,的IoT /物联网/工控安全等方向。想了解更多Tide安全团队,请关注团队官网: http://www.TideSec.net或关注公众号:
钓鱼网站php,偶遇钓鱼网站的一次代码审计相关推荐
- 信息收集——网站克隆和钓鱼邮件
普及网站克隆方法和邮件伪造原理和方法 网站克隆 复制目标网站前端信息 构建相似网页 获取用户登录数据 方法 cotaltstrike能够快速复制目标网站前端页面,并且复制相识度极高 cotaltstr ...
- 项目场景:对接支付宝支付,沙箱环境提示:支付存在钓鱼风险!防钓鱼网站的方法
项目场景:对接支付宝支付,沙箱环境提示:支付存在钓鱼风险!防钓鱼网站的方法 问题描述: 对接中遇到的问题: 原因分析: 提示:浏览器的锅 解决方案: 关闭所有窗口,只打开那个支付页面窗口就可以 转载h ...
- 对接支付宝支付,沙箱环境提示:支付存在钓鱼风险!防钓鱼网站的方法
项目场景:对接支付宝支付,沙箱环境提示:支付存在钓鱼风险!防钓鱼网站的方法 问题描述: 对接中遇到的问题: 原因分析: 提示:浏览器的锅 解决方案: 关闭所有窗口,只打开那个支付页面窗口就可以
- 什么是网站劫持,发现网站被劫持该怎么办?
网站劫持是指本想打开某个网站的时候,却被拦截跳转到另一个网站页面,或者出现一个不属于此网站的广告. IIS7网站监控可以及时防控网站风险,快速准确监控网站是否遭到各种劫持攻击,网站在全国是否能正常打开 ...
- 渗透测试-地基钓鱼篇-Cobalt Strike钓鱼(二十五)
** 渗透测试-地基钓鱼篇-Cobalt Strike钓鱼(二十五) ** 作者:大余 时间:2020-12-17 简介: 渗透测试-地基篇: 该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录 ...
- 干货收藏 | 计算机学习绝对不能错过的10大网站(内附网站链接)
作者:肖镇东 本文共2071字,建议阅读5分钟. 本文整理出大数据和人工智能领域最实用,质量最高的10大技术网站信息,既可以用于丰富技术知识,也可以用于学术研究. [ 导读 ]随着AI,大数据这些技术 ...
- JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...
接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...
- jira无法访问此网站_天津制作网站公司:更换空间对网站SEO的影响
制作网站的公司一般都会根据客户的需求进行网站空间的升级,比如由虚拟主机变成弹性云服务器,弹性云服务器配置升级如增加带宽,cpu升核,运行内存升级等等,这个时候对于网站之前做的优化会不会有影响呢? 天津 ...
- php实现中英文网站插件,多语言网站方案
我的网站目前是中文网站,现在想建一个英文的网站.日文网站.德语网站等等 1.创建站点 创建站点之后切换到这个站点 2.创建对应的语言文件目录 复制目录:/api/language/zh-cn/ 到 / ...
最新文章
- 重构ncnn,腾讯优图开源新一代移动端推理框架TNN
- VSS 2005 客户端和服务器端配置总结
- 通过零知识证明,成为重要的区块链革新者
- 【2017-02-18】C#基础 - 定义变量,输入输出(最基础的编程,以及灵活多变的编写思维)...
- android源码下载方式
- php调用pdf2html,php html2pdf
- springboot2整合mysql5_SpringBoot2.X (二十五):SpringBoot整合 Mybatis + MySQL CURD 示例
- 李学勤:功利化是现在教育的最大问题
- php项目的建立,PHP开发-ZendStudio初学教程-建立PHP项目
- [转]如何用VS2005制作Web安装程序
- 无法启用Windows Hello-某些设置由您的组织管理
- [转]VC _T的用途
- SQLyog备份数据库
- deepin linux安装微信,Ubuntu20.04安装Deepin-wine,微信,Tim
- Linux从入门到指令详解
- 论文阅读——Don‘t Stop Pretraining: Adapt Language Models to Domains and Tasks
- 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON8 LCD1602液晶显示
- html里面<i>和<em>标签的区别
- UML时序图(序列图)
- 2015百度之星初赛(1)1006 旋转卡壳