ZTJL2

[SWPUCTF 2021 新生赛]Do_you_know_http

抓包看看

ZTJL2_第1张图片

ZTJL2_第2张图片

使用本地,抓包后修改就可以了,再次访问新的地址就可以了

X-Forwarded-For:127.0.0.1
import requests
url='http://node1.anna.nssctf.cn:28029/hello.php'
headers = {
    'User-Agent': 'WLLM',
    'X-Forwarded-For':'127.0.0.1'
}
r=requests.get(url,headers=headers)
print(r.text)

后面第二种使用脚本就可以了

ZTJL2_第3张图片

[SWPUCTF 2021 新生赛]ez_unserialize

ZTJL2_第4张图片

使用后台扫描工具(御剑后台扫描、dirmap等)也可以看到存在一个robots.txt;

好像是robots.txt协议,再访问/cl45s.php文件

ZTJL2_第5张图片

观察wllm类里面的__destruct方法有一句话:$this->admin=="admin"&&$this->passwd=="ctf",满足就发flag。$admin和$passwd在类里面被固定了,不能控制啊。程序接收一个变量名为p的GET参数,且对其进行反序列化操作 , 这串被反序列化后,刚好是能满足条件的 。

payload如下

O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";}

关于robots.txt,robots协议也称爬虫协议、爬虫规则等,是指网站可建立一个robots.txt文件来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,而搜索引擎则通过读取robots.txt文件来识别这个页面是否允许被抓取。 但是,这个robots协议不是防火墙,也没有强制执行力,搜索引擎完全可以忽视robots.txt文件去抓取网页的快照。 如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。

[第五空间 2021]WebFTP

使用网站扫描工具(御剑后台扫描,dirmap等)扫描网站后台 dirsearch也是可以的

访问phpinfo.php,查找flag得到

下面我们就可以双击访问就可以了,我们这里可以先选择PHP类型的,这样会比较扫的比较快。

ZTJL2_第6张图片

 [LitCTF 2023]Ping

ZTJL2_第7张图片

ZTJL2_第8张图片

 就先输入127.0.0.1看看,但是没有什么收获

ZTJL2_第9张图片

 抓包看看,修改一下,发现目标文件

ZTJL2_第10张图片

cat /flag这个是没有什么过滤的,前面的题目有过滤

ZTJL2_第11张图片

 [UUCTF 2022 新生赛]websign

提示查看源代码,有点意外,但是ctrl茄u也不行,F12也不行,但是后面多试了几次ctrl茄u也可以查看源代码,其他师傅

1.在地址栏里面ctrl茄u,这样也是可以看到源代码的。

2.运用web开发者工具。

ZTJL2_第12张图片

[HDCTF 2023]Welcome To HDCTF 2023

点着点的就出来,交了看看,是对的,有点意外,就是死了之后出答案了

ZTJL2_第13张图片

但是还是要学习一下,运气了

在game.js中看到异常,jsfuck解密seeeeeeeecret的值,认识jsfuck

ZTJL2_第14张图片

 解密出来对比之后发现前面的是对的ZTJL2_第15张图片

[HUBUCTF 2022 新生赛]checkin

熟悉的就是双等号弱比较,后面的就是用户名和密码经过反序列之后还是要相等

flag.php把username和password替换了

特性布尔类型True与非零非NULL变量比较都会是True

ZTJL2_第16张图片

payload

?info=a:2:{s:8:"username";b:1;s:8:"password";b:1;}

 如果b后面的数字不相等了,就会出现报错了

ZTJL2_第17张图片

 [LitCTF 2023]PHP是世界上最好的语言!!

ZTJL2_第18张图片

 点击Run Code按钮将会执行php_code文本框中的PHP代码,并将执行结果显示在页面上的run_result元素中。

 提示在根目录下,用系统命令试一下

sysytem("ls /");

ZTJL2_第19张图片

 sysytem("cat /flag");

ZTJL2_第20张图片

开始的时候用成单引号了出现报错信息,用双引号就成功了

错误信息 “syntax error, unexpected ‘’);?>'” 意味着在某个位置上的代码语句出现了一个意外的结束标记,这通常是由于缺少分号、括号等常见的语法错误导致的。

错误信息中给出的 “T_ENCAPSED_AND_WHITESPACE” 提示需要注意单引号和双引号之间的引用格式是否正确。

在编写 PHP 代码时,应该遵循语法规则,并使用适当的括号、引号和分号等符号,以确保代码可以正确执行。如果确实遇到了语法错误,建议使用代码编辑器或开发环境中的语法高亮显示功能来检测和修复错误。

发现是php把单引号里面的cat /flag识别成了字符串类型,所以要用双引号。

[LitCTF 2023]导弹迷踪

是一道游戏题

ZTJL2_第21张图片

 先看源代码,前面刚还有一道题要看game.js代码,这道题看看这个做法行不行,

找到之后 先查找nss,但是没有什么发现,之后再试一试flag,最后还是找到了。

ZTJL2_第22张图片

 [GXYCTF 2019]Ping Ping Ping

先试一下system("ls /");  好像不行,过滤一些东西,与前面ping题不一样了。

ZTJL2_第23张图片

 使用反引号绕过
ip=;cat$IFS$9`ls`
原理讲解:linux下,会先执行反引号下面的语句
在这里会执行ls,ls的结果是“index.php flag.php”所以最后执行的语句等价于
cat index.php flag.php
右键查看页面源码即可得到flag

ZTJL2_第24张图片

 ZTJL2_第25张图片

 还有一种做法

linux内联执行

;ls

 看到两个文件,接着读取。

ZTJL2_第26张图片

;cat$IFS$9`ls`

 右键查看源代码ZTJL2_第27张图片

 另外一种就不是很理解了

将 payload 进行 base64 编码 并通过管道符作为 base64 -d 进行解码读取flag

;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

 同样也是右键查看源代码看到的,

[NSSCTF 2022 Spring Recruit]ezgame

ZTJL2_第28张图片

 看看两个文件下面都有什么,在js下面看到答案,因为前面连着都是在js里面找到的

ZTJL2_第29张图片

 [SWPUCTF 2021 新生赛]hardrce

ZTJL2_第30张图片

 黑名单过滤许多东西,

要绕过⿊名单和正则表达式。
不能异或,不能有字⺟数字。

常规的无字母RCE主要有三种方式:

  1. 异或
  2. 自增
  3. 取反

先传⼊system(ls /),查看所有⽂件,但是没有什么发现

异或和自增都被静止了,就用取反,不用异或和或运算是因为^和`被过滤了。

将system和ls /进行url编码取反

cat /flllllaaaaaaggggggg也进行url编码取反

payload

?wllm=(~%8C%86%8C%8B%9A%92)(~%9C%9E%8B%DF%D1%D1%D0%D1%D1%D0%D1%D1%D0%99%D5);

ZTJL2_第31张图片

 [SWPUCTF 2022 新生赛]奇妙的MD5

打开有一个提交框,暂时没有什么思路,要运用特殊的万能密码

ffifdyop

ffifdyop经过md5加密后为:276f722736c95d99e921722cf9ed621c

再转换为字符串:'or’6<乱码> 即 'or’66�]��!r,��b

而 Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是1select * from 'admin' where password='' or '6xxxxx',等价于 or 一个永真式,因此相当于万能密码,可以绕过md5()函数。

因此ffidyop相当于一个特殊的万能密码,这里就与题目相呼应了

提交我们再去查看一下源代码, 需要get传入,弱比较

x=s1885207154a
y=s1836677006a

并且会发现新的文件

ZTJL2_第32张图片

此时我们就需要注意的是要回去重新访问新的文件,而不是接着访问新文件。

接着绕过就可以了,只是变成强等于了,这里要注意提交的时候可能在前后会有空格。

ZTJL2_第33张图片

你可能感兴趣的:(前端,网络)