ctfhub技能树web题目全解

news/2024/5/19 21:36:09 标签: ctf

Rce

文件包含

靶场环境

重点是这个代码,strpos,格式是这样的strpoc(1,2,3)

1是要搜索的字符串,必须有;2是要查询的字符串,必须有;3是在何处开始查询,可无;

而在语句里面有一个感叹号,意思就是不的意思

在没有感叹号的时候接受get的file的值,值跟flag无关,就触发else的语句

但这里有一个感叹号在前面就表示为跟flag无关,就不会触发,会执行下面的include,执行文件内容。

php://input

这里定死了file前六个字母必须是php://

这里php://inout可以把post提交的数据当作php代码执行,但是这个要看phpinfp配置文件有没有开启,就打开下面的phpinfo

这两个配置文件是开启的就可以

然后直接get提交,?file=php://input

然后burp抓包

在下面加上以post格式提交的参数,这里执行了ls /查看文件,左边显示文件。

读取源代码

这个名字蚁剑给了就是flag,然后就是如何读取倒,input不能用,但是还有fliter

这样用,看一下实例

# 明文读取

index.php?file1=php://filter/resource=flag.php

# 明文写入

index.php?file2=php://filter/resource=test.txt&txt=helloworld

然后编造出flag的

查看falg就行。

命令注入

打开靶场,这个题目,运用到管道符,一起跟着执行了。

这样就可以查看到目录

之后再去找flag就行了

执行,查看网页源代码

就找到flag了

过滤cat,就用less

过滤空格就写成127.0.0.1|cat<falg

过滤目录分隔号

过滤/。用cd 过滤 

比如ls完,cd到指定目录下,在执行ls

这种,然后在继续,后门把ls换成cat读取flag就可以了

这题过滤很多东西/(\||&|;| |\/|cat|flag|ctfhub)

窗体顶端

这就要测试一下没有过滤什么字符

这个%0a还能用

就用它查看

查看到之后,看见了flag放在那里,但是有flag过滤

这里用到tab补全,url编码

?ip=127.0.0.1%0als%09*here#

补全名字

之后在查看它就可以了

先来到此目录下,因为cat过滤了所以用less查看

?ip=127.0.0.1%0acd%09*here%0aless%09*_88982229331151.php#

也用到了补全

ssrf

Web 目录

Ssrf漏洞就是可以看到内网的信息,需要用到一些伪协议http://192.168.64.144/phpmyadmin/

file:///D:/www.txt   直接访问本机www.txt文件内容

dict://192.168.64.144:3306/info    探针端口号开发情况,

ftp://192.168.64.144:21    探针对方ftp是否开放,这个是跟设置有关的的,有的直接访问c盘,或者别的,还有要登陆的

这个就用到了可file:///

查看源代码就有了。

端口扫描

直接访问网页带上http://127.0.0.1:8000

然后burp抓包

设置好递增数值到9000开始爆破

文件上传

这里自己创建一个提交按钮

然后burp抓住提交的数据包

这个肯定还要利用godher协议绕过

把burp抓到提交数据包,拿去url编码两次

这个url编码属实香到我了

然后就构造一个get请求的数据包,随便都可以

之后加上127.0.0.1/?url=127.0.0.1:80/_编码的好的pyload

FastCGI协议

这个直接用工具生成pyload,Gopherus脚本

Redis协议

利用工具生成,还是同一个工具,选择redis

生成一个后门

在哪去url编译一下

然后直接放到靶场

504表示已经上传成功了,蚁剑连接

URL Bypass

这个打开网页就说必须有http://notfound.ctfhub.com

们可以使用HTTP 基本身份认证绕过:

        HTTP 基本身份认证允许 Web 浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。

        也就是:http://www.xxx.com@www.yyy.com形式

Pyload  ​​​​​​http://notfound.ctfhub.com@127.0.0.1/flag.php,猜的flag就在这个目录

数字IP Bypass

这一题过滤了十进制,把ip127.0.0.1换成八进制和十六进制都可以

302跳转 Bypass

这个访问127.0.0.1/flag.php访问不了,那就访问index.php查看源代码

过滤了127|172|10|192 

发现没有过滤localhost(本地服务器)

DNS重绑定 Bypass

跟名字一样用重定向

网页

​​​​​​rbndr.us dns rebinding service

目录遍历

Git泄露,

log

打开靶场之后,直接复制靶场进行目录扫描

确定他有git泄露,直接利用工具

添加了就对比添加和删除的数据

文件上传

.htaccess文件

这一题对面是黑名单拦截,可以上传一个.htaccess文件,而我们只要在上传的.htaccess文件内写入

SetHandler application/x-httpd-php

这个东西。把所有格式转换为php格式

然后上传一个含有一句话木马的图片,再去连接他

就可以了。

%00截断

打开靶场,选择好后门文件上传

开burp抓包修改


http://www.niftyadmin.cn/n/5139455.html

相关文章

云计算助力史上首届“云上亚运”圆满成功!

201金&#xff0c;魔幻的BGM&#xff0c;以及崛起的中国科技&#xff0c;让杭州亚运会成功出圈。 很多网友表示太震撼了&#xff01;开幕式很漂亮&#xff0c;杭州为了奥运造新城真豪横&#xff0c;看完一整个文化自信住&#xff01; 赛场内外除了无数个令人感动的瞬间&#…

IDEA优雅自动生成类注释和快捷键生成方法注释

生成类注释 Preferences->Editor->File and Code Templates-> Includes ->File Header 注释模板&#xff1a; /*** Classname ${NAME}* Description ${description}* Date ${DATE} ${TIME}* Created by ZouLiPing*/生成方法和字段注释 查看IDEA自动配置java快捷…

QT通过url下载http地址下的文件(文件夹)

前言 之前只写过通过http协议通信&#xff0c;没有写过下载http地址中的文件或者文件夹&#xff0c;了解一下在QT下如何下载。 其实很简单&#xff0c;同使用协议通信相同的是&#xff0c;创建QNetworkAccessManager和QNetworkRequest&#xff0c;设置QNetworkRequest的url&a…

《商业模式的逻辑》-1-为什么要学习商业模式

学习商业模式&#xff0c;也许你的idea会因为有商业模式的加持而变为现实^_^ 视频参考&#xff1a;【商业模式的逻辑】1. 为什么要学习商业模式_哔哩哔哩_bilibili【商业模式的逻辑】1. 为什么要学习商业模式是【商业模式的逻辑】清华大学&#xff08;全11讲&#xff09;沈拓 …

xhadmin多应用SaaS框架怎么更新?

xhadmin是什么&#xff1f; xhadmin 是一套基于最新技术的研发的多应用 Saas 框架&#xff0c;支持在线升级和安装模块及模板&#xff0c;拥有良好的开发框架、成熟稳定的技术解决方案、提供丰富的扩展功能。为开发者赋能&#xff0c;助力企业发展、国家富强&#xff0c;致力于…

离散数学实践-编程实现利用真值表法求主析取范式以及主合取范式

*本文为博主本人校内的离散数学专业课的实践作业。由于实验步骤已经比较详细&#xff0c;故不再对该实验额外提供详解&#xff0c;本文仅提供填写的实验报告内容与代码部分&#xff0c;以供有需要的同学学习、参考。 -------------------------------------- 编程语言&#xff…

msvcp140.dll丢失怎么修复?msvcp140.dll文件缺失的解决方法

msvcp140.dll是一个动态链接库文件&#xff0c;它是Microsoft Visual C Redistributable for Visual Studio 2015的一部分。这个文件包含了C运行时库的一些函数和资源&#xff0c;许多应用程序和游戏都需要依赖这个文件来正常运行。当电脑中缺少msvcp140.dll文件或者该文件损坏…

error: src refspec main does not match any

实际就是如果把github上文件先下载在本地&#xff0c;在创建git目录&#xff0c;会将分支命名为master&#xff0c;而clone到本地分支会命名为main&#xff0c;这要提交会出错&#xff0c;这时候需要改名。 解决方案A-如果要将分支命名为master 运行git push -u origin maste…