【Bugku CTF】web解题记录

记录我在Bugku CTF靶场中做的比赛真题,便于自己以后的复习

1.my-first-sqli

进入此关卡,发现参数有username和password

我们尝试在username上注入数字型、字符型参数,后面发现注入字符型的单引号的有报错语句,我们在username上注入下面内容,判断字段数,发现只有2个字段,我们再用联合注入的方式进行注入(密码随便填)

1' order by 3--+

1' union select 1,2--+

 得到以下flag

shellmates{SQLi_goeS_BrrRrRR} 

 

2.post-the-get 

首先,看到题目和题目中的提示,我们可以猜想本题目的是想通过更改提交方式。

 看到题目中post的方式不能提交,一我们可以通过BP抓包将GET的提交方式修改成POST,二我们可以通过修改网页中的源代码来进行提交。我们就第二种方式进行操作,F12查看网页源代码,我们发现form表单的method方式是GET,我们需要通过修改成POST;POST的value值是disable的,我们将disable去除之后,点击题目中的post即可

修改后如下图所示

 

3.baby lfi 

通过lfi的提示我们可以知道该题目考察的是文件包含漏洞,而且打开题目之后,我们通过include的提示也可以猜到是考察文件包含漏洞,题目还给出了使用language参数的提示,并且提示包含关键文件/etc/passwd

我们就可以构造payload

http://82.157.146.43:17180/?language=/etc/passwd

 

4.baby lfi 2

进入此关题目中的lfi依旧考察文件包含漏洞,提示有关键文件/etc/passwd,并且在此文件下有一个目录languages

我们就可以构造payload,这里的./表示的是当前目录的意思,而../是表示进入上一层目录的意思,默认情况下/etc/passwd是处于根目录下的,我们只有使用多的../跳转到根目录,从而获取到flag

http://82.157.146.43:16755/?language=./languages/../../../../etc/passwd

 

 

 5.lfi

依旧如此,本题考查文件包含漏洞,题目提示包含关键文件/etc/passwd,并且出现了一个str_replace的函数

意思是将language参数中出现的../替换为空,此时我们需要尝试进行绕过 

我们尝试用双写进行绕过../ 

http://82.157.146.43:17661/?language=....//....//....//....//....//etc/passwd

 6.nextGen 1

我们打开此关卡,发现没有任何有用的信息,查看网页的源代码,发现滑倒底下有个.js文件,打开它,发现出现以下提示

  1. xhttp.open("POST", '/request'); 这一行代码设置了即将发送的请求的类型和方法。POST是一个HTTP方法,用于向服务器发送数据。'/request'是请求的URL路径,表示请求将被发送到服务器上的/request这个端点。

  2. xhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 这一行设置了HTTP请求的头信息。Content-Type头告诉服务器发送的数据类型。application/x-www-form-urlencoded是表单数据的编码类型,通常用于提交表单数据。这意味着发送的数据将会被编码成URL编码格式,例如key=value&key2=value2

  3. xhttp.send("service=" + this.attributes.link.value); 这一行发送了实际的请求。send方法接受一个参数,这个参数是要发送到服务器的数据。在这个例子中,数据是"service="加上this.attributes.link.value的值。this指的是当前的作用域对象,attributes是该对象的一系列属性,link是其中一个属性的名字,value是这个属性的值。这个值被附加到字符串"service="后面,形成一个键值对"service=value",其中valuelink属性的值。这个键值对就是发送给服务器的数据。

接下来,我们通过BP抓包,构造如下图所示,将GET方式替换成POST,设置request为url请求路径,并设置给定的content-type以及设置service参数,对于设置service参数,使用file协议来获取本地信息。此关为典型的ssrf漏洞,通过利用file协议获取信息

 

7.nextGen 2 

进入此关,前面步骤跟上面题目一致,但是这道题进行了过滤,在service传参时,我们需要过滤

因为上面service的参数只出现了三个点,所以必须要是 xxx://xx.xx.xx/xxxxx 这种格式,常见替代:127.0.0.1 = 127.1 = 127.0.1


service=file://127.0.1/flag.txt

 

 

  • 35
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值