您的位置:首页 > 房产 > 建筑 > web刷题记录(1)

web刷题记录(1)

2024/12/23 8:06:14 来源:https://blog.csdn.net/2301_81841047/article/details/138820237  浏览:    关键词:web刷题记录(1)

[GXYCTF 2019]Ping Ping Ping

进入页面,发现有一个传入参数的框,目的就是为了让我们通过参数传入内容来执行代码。这里先传入本地ip,方便后面的ping命令运行

 ls命令来查看,目录中的文件

传入后,发现目录下有flag.php,尝试读取这个文件

发现无法读取,根据回显信息可知,存在绕过,是空格被过滤

空格绕过的方法

过滤空格
$IFS$9
${IFS}
$IFS$1

 尝试绕过

 这里尝试了%09,%20,$IFS$1,都不可以读取,既然flag文件无法读取,尝试读取index.php,成功读取

查看源代码

发现源码中,过滤了f*,l*,a*,g*,看了wp以后,发现这里要用变量拼接绕过,即给两个不同的变量赋值,然后,最终组成flag

成功绕过,查看源代码,得到了flag

除了上面的变量拼接绕过还有base绕过的办法,即将命令用base64编码以后,再通过解码,执行命令,以下是代码

对cat flag.php 进行base64  Y2F0IGZsYWcucGhw
base64 -d   解码
sh (是shell命令语言解释器  通过这个执行base64 -d)所以payload127.0.0.1;echo$IFS$9Y2F0IGZsYWcucGhw|base64$IFS$9-d|sh| 为管道符 直接执行命令   |左边命令的输出就会作为|右边命令的输入

这种方法也可以获得flag,这里就不再展示

[SWPUCTF 2021 新生赛]error

这道sql题,我是用sql-map做出来的,所以这里展示用sql-map的做法,老样子,进入发现有参数的传入口,传参以后,用bp抓包,将抓包内容的文件复制到kali里面,使用sql-map的命令进行检查,因为不确定是哪一种注入形式,所以这里采用五级三风险,发现是时间盲注和报错注入,而且爆出了一个库

既然有了爆出的库,以及注入信息,就改为三级一风险,然后接着爆破

找到了可疑的表,接着往下爆破

找到了flag文件

接着爆字段

最后得到了flag

[LitCTF 2023]1zjs

这里题目信息中提示了js,那么进入后就选择从js文件中找信息

这里想看看这道是不是简单题,所以先在js文件里面筛选有关flag信息的内容

筛选完一遍以后,发现题目本身的文件里面不含有任何直接带flag相关字段的信息

那么尝试从查看器中找相关的线索

发现可疑信息,指向另外一个js文件,尝试访问去找线索

访问以后,发现页面中间有一大段注释,从注释中解读到了线索的信息

继续访问

发现这个文件里面就是一段jsfuck的代码,本来按照做法是去找相关的解密网站,但是我找了很多都是因为过长,而解不出来。通过查找资料可知,可以通过开发者工具的控制台来直接解读,修改一点权限以后,复制粘贴,运行以后得到了flag。

[LitCTF 2023]作业管理系统

 进来以后发现有登录页面,于是尝试弱口令爆破,账号admin,密码admin,或者123456,运气很好第二遍就试出来了,后面发现,在这个界面的源代码里面给了账号密码的信息,所以说,如果没有头绪就多看看源代码然后进行分析。

进入以后,发现有文件上传的点

尝试上传一句话木马

没有什么绕过的,直接一句话木马的php文件也可以上传,上传成功以后,找一下路径

从路径检测可知,木马上传成功,这里使用蚁剑连接

连接成功,进入文件目录去找与flag有关的文件

找了一圈,发现并没有,直接文件名称相关的文件,那这里选择使用虚拟终端来查找与flag相关的信息

成功找到了flag

[SWPUCTF 2021 新生赛]finalrce

进入题目后,发现题目虽然与rce有关但是存在正则表达式,过滤了很多参数,并且要以get传参的方式,将参数传入url这个变量中。这里我考虑了取反来进行绕过,但是发现没有回显。在思考和对wp的解读以后,我觉得这题主要是,遇到一种新的符号,"\"—转义符。我理解的作用就是在一些控制字符被过滤的时候,可以用转义符,让控制符失去原本的含义,变为字面量,但是作用不变,然后发现这里要用到tee命令(这里是大佬博客关于tee命令的用法),这里tee命令的作用是从标准输入读取,再写入标准输出和文件。

 所以,这里是构造的payload

?url=l\s / | tee 1.txt

这里payload的作用前半部分是对正则表达式的绕过,后半部分是使用tee命令,将ls命令读取到的内容,存储到1.txt这个新建的文件中,因为这个命令不会有特别明显的回显(这里这句话我当时就没发现),所以等代码执行完以后,,直接访问1.txt文件

得到了跟flag有关的文件信息

因为在上面给出的代码中,cat命令被限制了,所以通过查询以后,这里使用了另外一个关于查看文件的命令,即tac

但是,直接构造payload发现,还是被拦截了,也不知道是什么被过滤了,再次查看,发现是flag文件的连接的“al”被过滤了,所以,这里再次使用转义符,进行绕过

成功绕过后,tee命令成功执行,将flag文件的相关内容存储到2.txt,通过访问该文件,最后得到了flag的内容

 [UUCTF 2022 新生赛]websign

因为是签到题,所以估计难度不会太大,并且这里给的提示和源码有关,所以选择先看源代码的内容

但是一通操作以后发现F12,ctrl u等直接查看源码的操作被过滤,这里还有两种办法,一种是在URL框中使用开发者工具查看,另外一种是在URL栏中输入view-resource:,这两种方法都可以直接查看到这个网页的源代码

 

开源以后呢,发现那些快速查看源码的方法被禁用的原因是一个js文件的问题,这里其实还有第三种办法,就是直接禁用这个js脚本,然后就可以通过那些快捷的办法来查看源代码

[鹏城杯 2022]简单包含

进入以后,根据题目和代码提示可知,这里要用post传参的方式来将flag作为变量传入数据,并且注释中还给了flag相关文件的路径

 这里先尝试使用伪协议,直接读取flag.php这个文件,但是没有回显,说明还不满足题目的条件

所以这里选择换个思路,选择先读取index.php文件的内容,看看是不是还存在其他的条件来判断

成功读取,复制以后,进行解码查看文件内容

发现确实还存在一个条件判断,这里代码的大致意思是

两者同时满足时waf才生效,所以我们让脏数据的数量大于800

strlen(file_get_contents('php://input')) < 800:它检查通过 php://input 获取的请求主体的长度是否小于 800 字节。

reg_match('/flag/', $path):它使用正则表达式检查 $path 变量是否包含字符串 "flag"。这是为了防止包含敏感文件

所以这里使用python,先生成800字节的内容

然后再以post传参的方式去构造payload,最后成功导出了flag,解码后即获得了flag

 [HDCTF 2023]Welcome To HDCTF 2023

进入题目中以后,发现是一个游戏,根据以往做题经验可知,和flag相关的信息一般都在game.js文件中,然后特别奇怪的是,随便点了几下,flag就弹出来了。。。。。。。。。。。

(手动狗头)但是flag咱该找还是得找啊

进入源码后,发现检索根本检索不到与flag直接相关的信息,只能眼搓,搓了大概五分钟之后,终于找到了,可能和flag相关的信息,是一段jsfuck代码

老样子,丢到控制台里面,跑出来了flag

[LitCTF 2023]Http pro max plus

进入后,根据提示可知,要通过bp修改为本地的ip

抓包以后进行修改

。。。这里因为xff是比较常见的,但是被嘲讽了,通过查找资料可知,还可以用Client-ip来修改,

成功进入了下一个界面,这里要更改的是Referer

因为一直抓包放包太麻烦,所以这里换用repeater

得到了下一步提示,根据提示,修改UA头

让开代理,这里使用的是Via:

 获得了一个文件的路径

访问,有三个超链接,但是没什么用,这里查看源码,发现了相关信息

绕了这么多,居然还有

还好,终于给我拿到了flag

这就是今天的刷题记录。纯小白,如有错误欢迎指正。

版权声明:

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

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