IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 记一次钓鱼网站的代码审计 -> 正文阅读

[PHP知识库]记一次钓鱼网站的代码审计

链接:https://pan.baidu.com/s/1j2AzW9_dzqDz6i91eARfEw 
提取码:8zel

seay源码审计
image-20220221163554305

daochu.php 疑似SQL注入漏洞

在seay审计后的第一条,提示sql漏洞,跟进查看源码,当检测没有传参all时,会执行sql语句且无任何过滤
image-20220221164346489
将括号进行闭合,执行语句id=1) or if(1,sleep(3),1)%23,发现进行了拦截
image-20220221165611353
明明在执行语句中没有过滤却进行了拦截,于是全文搜索了下输入内容存在危险字符,安全起见,已被本站拦截,看看是在那个地方做了过滤
image-20220221165820203
在360webscan.php中发现该语句在webscan_page方法中
image-20220221165926160
全文搜索在何处调用了该方法,发现只有webscan_StopAttack中调用
image-20220221170054842
继续搜索何处使用该方法,发现在360webscan.php下方有一条if判断语句,在判断条件中有个webscan_white方法
image-20220221170253137
跟进看一下,这里会对该方法的第一个参数和$_SERVER['SCRIPT_NAME']进行一个匹配,如果匹配成功,就会返回false,而返回false的话上边的if语句就不会执行,从而就不会执行webscan_StopAttack()方法,就不会对我们输入的内容进行检测image-20220221171550825
这里记录下$_SERVER['SCRIPT_NAME']及其他参数的一些用法
例:

http://127.0.0.1/example/index.php/dir/test
$_SERVER['PHP_SELF'] 得到:/dir/test   
//无论访问的URL地址是否有index.php,它都会自动的返回 index.php.但是如果在文件名后面再加斜线的话,就会把后面所有的内容都返回
$_SERVER['SCRIPT_NAME'] 得到:/example/index.php
//返回当前的文件名
$_SERVER['REQUEST_URI'] 得到:/example/index.php/dir/test

知道这个之后,就去查看一下if语句中调用的$webscan_white_directory变量,在webscan_Cache.php发现该变量
image-20220221172930342
变量没有任何的值且不可控,就无法绕过正则检测了,此利用点就无法使用了
此后上网搜索了一下360webscan的漏洞,发现在早期的文件里,$webscan_white_directory变量是有值的即:

//后台白名单,后台操作将不会拦截,添加"|"隔开白名单目录下面默认是网址带 admin  /dede/ 放行

$webscan_white_directory='admin|\/dede\/|\/install\/';

该语句经过$_SERVER['SCRIPT_NAME']后,会得到当前文件的路径,如果其中有admin或/dede/等字眼即会绕过正则检测,返回false,从而使webscan_StopAttack方法无法执行
知道这个后,我把$webscan_white_directory附上了如下的值
image-20220221173558391
并且在我传参的路径中本身就存在/admin,因此就实现该sql注入

http://127.0.0.2/fish/admin/daochu.php?id=1) or if(1,sleep(3),1) %23

执行后出现sleep延迟
参考文章:
360webscan防注入脚本全面绕过 | 离别歌 (leavesongs.com)

member.php 存在SQL注入

seay审计中提示pass.php可能存在sql注入
image-20220221211638072
跟进后查看,发现比何处$name处会经过daddslashes函数转义处理,绕过这个函数有四种方法:

  • SQL语句中传参无单引号闭合
  • 宽字节注入
  • 使用iconv().mb_convert_encodeing()函数导致的宽字节注入
  • 编码解码导致的URL绕过

参考:php代码审计之绕过addslashes()函数的几种情况_getcode大魔王_新浪博客 (sina.com.cn)
image-20220221212604743
很明显这四种方式都行不通,在此后方还有个$udata变量,跟进看一下,在member.php中找到,很明显将$udata的值转为我们想要的值有些难,但后边的$admin_user是完全可控的
image-20220221214507289
前边有islogin和admin_user的判断,所以传参islogin任意值,并将admin_user传参1' or if(1,sleep(3),1) #base64编码后的值,出现延时注入
image-20220221214815397

2018.php 疑似存在XFF注入

seay审计发现X-Forwarded-For漏洞
image-20220221220438161
跟进查看是定义了一个方法
image-20220221220543324
explode
仔细查看后发现该方法中用explode函数绕过了时间盲注的逗号“,“
ip2long
并且在下方有个ip2long函数,会将ipv4的地址转为整型,若我们输入的不是ip地址,例如sql语句等则会返回false

所以该利用点行不通

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:10:13  更:2022-02-26 11:11:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 1:29:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码