Bugku-Web(一)

Web2

在这里插入图片描述
查看网页源代码
在这里插入图片描述

计算器

在这里插入图片描述方法一:发现只能输入一个字符,修改源码
在这里插入图片描述方法二:
该验证码并没有用表单验证,那该题是用什么验证机制呢?
在这里插入图片描述之后查看js文件,发现了flag
在这里插入图片描述

Web基础$_GET

题目给了很明显的提示
在这里插入图片描述

Web基础$_POST

由POST请求方法可知只要传递相应参数即可获得相应内容
方法一:hackbar
在这里插入图片描述
方法二:BurpSuite抓包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
python

方法三:python的requests模块

import requests

value = {"what": "flag"}
r = requests.post("http://123.206.87.240:8002/post/", value)
print(r.text)

在这里插入图片描述

矛盾

num既不能是数字字符,但是要等于1
我们可以想到用其他方法表示数字1,既不是纯数字,其值又等于1
科学计数法num=1e0.1
在这里插入图片描述
num=1xx,php判断字符串以1开头即可判断等值
在这里插入图片描述

Web3

一直出现弹框
在这里插入图片描述KEY{J2sa42ahJK-HS11III&#125
unicode编码转换
在这里插入图片描述

域名解析

在这里插入图片描述
域名解析:

域名解析是将域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

尝试直接访问
在这里插入图片描述
在这里插入图片描述

400状态码

400是一种HTTP状态码,告诉客户端它发送了一条异常请求。400页面是当用户在打开网页时,返回给用户界面带有400提示符的页面。其含义是你访问的页面域名不存在或者请求错误。主要分为两种。
1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
2、请求参数有误。 400的主要有两种形式:
1、bad request意思是“错误的请求";
2、invalid hostname意思是"不存在的域名”。
通常只用Windows主机才会出现这样的字样,如果是Linux主机,会显示不同的错误提示。bad request invalid hostname出现这个错误的原因是某个域名绑定到了某个主机上,而该主机却没有绑定这个域名,所以IIS就返回了这个提示信息。遇到这个问题怎么办呢?解决方法首先就是Ping一下域名,看看是否解析到空间所在的IP,如果是,再去空间的管理面板看有没有绑定你的域名了,如果有,就可以肯定是空间提供商的问题了,解决这个问题就只能找空间提供商绑定你的域名了,如果自己有这个权限自己绑定域名就可以解决问题。
[1]

ping一下域名,请求找不到主机,应该不是供应商的问题
在这里插入图片描述
host

Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。需要注意的是,Hosts文件配置的映射是静态的,如果网络上的计算机更改了请及时更新IP地址,否则将不能访问。

http中的host头字段

结论:120.24.86.145需要flag.bugku.com作为host头信息接收,返回flag,但flag.bugku.com又不能通过DNS服务器解析。

在这里插入图片描述
方法一:修改hosts文件
在这里插入图片描述wiin10没有修改hosts文件的权限,以管理员身份打开cmd然后打开hosts文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
方法二:利用burpsuite修改头部的host信息
在这里插入图片描述将host的信息修改为flag.baidu.com
在这里插入图片描述

你必须让他停下

在这里插入图片描述抓包,后台总共有15个jpg,后台会随机返回一个图片,如果jpg为10的时候就能得到flag
在这里插入图片描述

本地包含

该题好像出了一点问题,看看别人写的博客吧
https://blog.csdn.net/dyw_666666/article/details/82389457

变量一

flag In the variable ! <?php  

error_reporting(0);//关闭php错误提示
include "flag1.php";//引入flag1.php代码文件
highlight_file(__file__);//对文件进行语法高亮显示
if(isset($_GET['args'])){//条件判断 get方法传递的args参数是否存在
    $args = $_GET['args'];//赋值给变量  $args
    if(!preg_match("/^\w+$/",$args)){//这个正则表达式的意思是匹配任意 [A-Za-z0-9_] 的字符,就是任意大小写字母和0到9以及下划线组成
        die("args error!");
    }
    eval("var_dump($$args);");
}
?>

var_dump() 函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

preg_match 函数用于执行一个正则表达式匹配
可变变量:一个变量的变量名可以动态的设置和使用

eval()函数存在命令执行漏洞 我们的目标是查看flag1.php中的flag 首先想到的是本地包含漏洞查看源码 或者上传一句话木马等思路 。而本题条件判断加了正则表达式判断,过滤了括号和引号等字符。无法构造!

构造payload:
?args=GLOBALS
在这里插入图片描述
也可以测试php的九大全局变量:

$_POST [用于接收post提交的数据]
$_GET [用于获取url地址栏的参数数据]
$_FILES [用于文件就收的处理img最常见]
$_COOKIE [用于获取与setCookie()中的name 值]
$_SESSION[用于存储session的值或获取session中的值]
$_REQUEST [具有get,post的功能,但比较慢]
SERVER[是预定义服务器变量的一种,所有SERVER[是预定义服务器变量的一种,所有 _SERVER [是预定义服务器变量的一种
$GLOBALS [一个包含了全部变量的全局组合数组]
$_ENV [是一个包含服务器端环境变量的数组。它是PHP中一个超级全局变量,我们可以在PHP 程序的任何地方直接访问它]

在这里插入图片描述
在这里插入图片描述

Web5

在这里插入图片描述出现了一行奇怪的东西
在这里插入图片描述JSPFUCK有一个梗

JSFuck(或为了避讳脏话写作 JSF*ck )是一种深奥的 JavaScript编程风格。以这种风格写成的代码中仅使用
[、]、(、)、! 和 +六种字符。此编程风格的名字派生自仅使用较少符号写代码的Brainfuck语言。与其他深奥的编程语言不同,以JSFuck风格写出的代码不需要另外的编译器或解释器来执行,无论浏览器或JavaScript引擎中的原生
JavaScript 解释器皆可直接运行。鉴于 JavaScript 是弱类型语言,编写者可以用数量有限的字符重写 JavaScript
中的所有功能,且可以用这种方式执行任何类型的表达式。

把这一串放到console之后敲回车就可以得到flag

头等舱

在这里插入图片描述
抓包,之后重放
在这里插入图片描述得到响应头
在这里插入图片描述
题目名字叫头等舱,暗示flag应该在请求头,响应头什么的里面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值