第十九次作业

news/2025/1/8 20:44:27/文章来源:https://www.cnblogs.com/jiajiawei/p/18659405

1、安装fortify并以pikachu靶场为目标进行练习熟练使用fortify
安装

安装后

复制fortify-common-23.2.0.0023:
将fortify-common-23.2.0.0023.jar⽂件分别将下⾯路径的⽂件覆盖
C:\Program Files\Fortify\Fortify_Apps_and_Tools_23.2.0\Core\lib C:\Program Files\Fortify\Fortify_SCA_23.2.0\Core\lib
更新规则:
解压FortifyRules_zh_CH_2023.1.1.0001(离线规则库).zip 规则库,先删除C:\Program Files\Fortify\Fortify_SCA_23.2.0\Core\config⽬录下的ExternalMetadata和rules⽂件夹,然后把解压的ExternalMetadata和rules⽂件夹拷⻉到该⽬录下
运⾏:
C:\Program Files\Fortify\Fortify_Apps_and_Tools_23.1.0\bin 下的auditworkbench.cmd 即可开启GUI界⾯,可以通过⿏标右键将该⽂件的快捷⽅式发送到桌⾯

扫描后的界⾯

2、安装并使用rips、seay工具对pikachu进行审计
rips:
将rips文件复制到web⽬录,创建网站。
subdirs:扫描所有⼦⽬录。
verbosity level:选择扫描结果的详细程度,缺省为1(建议就使⽤1)。
vuln type:选择需要扫描的漏洞类型。⽀持命令注⼊、代码执⾏、SQL注⼊等⼗余种漏洞类型,缺省为全部扫描。
code style:选择扫描结果的显示⻛格(⽀持9种语法⾼亮)。
/regex/:使⽤正则表达式过滤结果。
输⼊⽬录后可以查看扫描结果:

seay:
新建项⽬并打开pikachu源码⽬录

点击"⾃动审计",然后点击“开始”,软件开始运⾏分析整个项⽬

查看扫描结果

3、复习php代码审计函数精讲相关内容,重点是SESSION验证绕过、urldecode二次编码绕过、str_replace绕过
SESSION验证绕过:

看关键的⼀⾏ if ($_GET['password'] == $_SESSION['password'])需要session中的password值和⽤户传的⼀样,就可以成功拿到flag,所以只需要删掉session值,或者修改session值为⼀个不存在的session,这样服务器获取不到session,则password为空,然后传⼀个空的password的进去即可拿到flag。
利⽤原理如下:在PHP配置中的默认情况下,Session是⽤Session ID来确定当前对话所对应的服务器Session,sessionID可在cookie中找到,当删除cookie中的sessionID后,$_SESSION[‘password’]就会返回空,我们同样传⼊空的password就能绕过了。因此 payload 为 password= 且 删除 cookie的值。
urldecode二次编码绕过:

由于浏览器的⼀次urldecode,再由服务器端函数的⼀次decode,造成⼆次编码,⽽绕过过滤。 如%2527,两次urldecode会最后变成',我们将 flag 中第⼀个字符 m 进⾏url⼆次编码,URL编码为:%6d,⼆次编码为%256d,绕过http://下x.x.x.x?id=%256dagedu
str_replace绕过:

经常出现在字符过滤等功能逻辑中,由于仅仅过滤⼀次,因此容易被绕过。
..././../../过滤后:../
4、搭建并部署微商城系统并结合课件审计复习sql注入漏洞、文件上传漏洞
环境搭建
上传源码到⽹站根⽬录并解压
创建数据库mall并导⼊数据库⽂件到数据库

修改数据库链接⽂件:/Mao/common.php

sql注入漏洞:
下⾯代码中,直接使⽤户提交的search参数并拼接到了sql语句中,造成sql注⼊漏洞

goods.php id参数存在sql注⼊漏洞

⽂件上传漏洞:
下⾯代码没有过滤⽤户上传的⽂件,导致任意⽂件上传

5、搭建bluecms并分析sql宽字节注入漏洞原理
环境搭建
安装:http://bluecms/install/,根据导航⼀步步安装即可,但是最后⼀步会出现空⽩⻚⾯ ,可以注释掉下⾯⽂件中step5 中的incude代码



sql注⼊漏洞(宽字节):

由于默认使⽤的是gbk编码,我们已知当编码为gbk等双字节编码时,容易发⽣宽字节注⼊。(宽字节原理:两个字节以上叫宽字节,当测试的时候,输⼊“%df'”,这个时候如果php函数是使⽤的addslashes()的时候,会在冒号的前⾯加上’\’。也就变成了%df' 。对应的编码是%df%5c’.这时候⽹站字符集是GBK,mysql使⽤的是gbk编码的时候,默认认为两个字符为⼀个汉字。当⽹站过滤的机制是采⽤转义\的时候,我们可以在⽹站添加的转义符号前⾯构造⼀个%xx使得变成%xx%5c⽽被mysql认为是⼀个汉字,从⽽绕过转义。宽字节注⼊最常⽤的是%df。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/866064.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongodb windows zip安装并服务自启动

1.下载并解压。2.新建文件/文件夹 data/db 目录 logs/mongod.log 文件 conf/mongod.conf 文件 3.编辑conf/mongod.conf文件 systemLog:destination: filelogAppend: truepath: F:/mongodb-win32-x86_64-windows-6.0.20-rc3/logs/mongod.logstorage:dbPath: F:/mongodb-win32-x…

Linux通过端口找到对应的服务

首先执行netstat -tulnp | grep <端口号>例如:netstat -tulnp | grep :80参数解释:-t: 显示 TCP 连接(只显示TCP协议的端口信息)。 -u: 显示 UDP 连接(只显示UDP协议的端口信息)。 -l: 显示正在监听(Listening)状态的端口(只显示处于监听状态的端口)。 -n: 以数…

2025新春源码免费送

我们常常在日常生活中感到时间过得异常缓慢,仿佛未来遥不可及。然而,当我们回过头去审视过去,才发现时间早已悄然溜走,许多曾经等待的日子已经过去。时间总是在不经意间流逝,让人意识到它的宝贵和不可逆转。 尽管如此,我们依然应对未来保持从容的态度。生活充满了无数的可…

2025.1.8 鲜花

Nim 的变种Nim 的变种グランドエスケープ 空飛ぶ羽根と引き換えに 繋ぎ合う手を選んだ僕ら 没有选择飞翔的翅膀 而是选择十指相扣的我们 それでも空に魅せられて 夢を重ねるのは罪か 却仍然向往着天空 反复做着同样的梦 这有错吗 夏は秋の背中を見て その顔を思い浮かべる 夏…

CTF 之 Crypto (Cryptography) 学习笔记

CTF 之 Crypto (Cryptography) Chapter 0. 前置知识 群 (Group) 给定一个集合 \(G\neq \emptyset\) 以及二元代数运算 \(\circ\),若满足:封闭性 (Closure):\(\forall u,v\in G\),\(u\circ v\in G\); 结合律 (Associativity):\(\forall u,v,w\in G\),\((u\circ v)\circ w…

(2025自测有效!)全网最好的python配置教程【非常非常适合小白】

前几天我的电脑刚刚重装,把python重新配置了一下。 1.Python环境部署Python3 可应用于多平台包括 Windows、Linux 和 Mac OS X。 Python官网:https://www.python.org/ 进入官网在导航栏选择Dowmloads,选择所使用的系统(以Windows为例) 进入Windows下载页之后选择需要下载的…

写一个支持折叠、有缩进、代码高亮、离线的,方便部署的、易用的、优雅的json格式化查看工具(附html完整代码)

缘由 网上的在线json格式化有很多,但我是个有追求的人。在线的很难同时支持折叠、有缩进线、代码高亮、离线的,方便部署的、易用的、不请求后端(为了安全)的json格式化工具。 去Github上找项目,华而不实的东西占半个屏幕,格式化json要点好几下,一个json格式化工具npm安装…

AGC041F Histogram Rooks

我不知道啊,我只是觉得容斥很好玩。一个朴素的想法是容斥:考虑钦定 \(S\) 集合的位置没有被车覆盖,则答案是 \((-1)^{|S|}2^{c}\),其中 \(c\) 是可以放车的位置,可以直接 dp 做到 \(\mathrm{O}(2^n \text{poly}(n))\),但是难以优化。 延续容斥的想法,注意到钦定一个位置…

rust学习十六.1、并发-乱弹和一个简单并发例子

如书本作者所言,并发编程在绝大部分语言中,都是相对复杂和困难的。 所以,涉及的内容会相对多一些,所涵盖的内容绝对不是几篇文章所可以容纳的。 权当一个乱弹琴! 和此系列的其它文章一样,本文的内容绝大部分来自于相关书籍,本人做了一些摘裁的工作,取我所需!一、无畏并…

解决jenkins git 拉取代码超时问题

jenkins默认的是时间是10分钟,在git fetch时候超过10分钟了就报错失败了,可在项目源码管理 新增 advance clone behaviours

Java Bluetooth 蓝牙通讯 BlueCove 扫描附近的蓝牙设备

目录BlueCove项目概述BlueCove API架构API的设计原则和实现方式关键类和方法的功能描述测试代码获取本机(PC)蓝牙扫描蓝牙 BlueCove项目概述 BlueCove是一个开源的蓝牙协议栈实现,旨在为Java开发者提供一个全面的、易于使用的API,从而在应用程序中实现蓝牙功能。该项目支持多…