其他分享
首页 > 其他分享> > Bugku刷题--WEB篇

Bugku刷题--WEB篇

作者:互联网

刷题步骤按着解题人数从多到少顺寻

知识点记录

  1. 模板注入
  2. 模板注入
  3. 文件解析漏洞+远程代码执行漏洞
  4. 查看源代码的方法(F12、抓包、开发者工具)
  5. 客户端传输数据—修改网页源代码
  6. 禁用JS脚本,unicode解码
  7. POST方式,上传数据
  8. PHP弱类型----部分数据在“==”两侧相等
  9. Burpsuite抓包,审计源代码,unicode
  10. Burpsuite抓包,重放,找flag
  11. 文件读取,构造URL
  12. $GLOBALS可以查看全局作用域中的所有变量
  13. 读取network中header部分
  14. 目录扫描
  15. 获得密码(爆破或者base64解码),repeter伪造身份
  16. URL解码
  17. 文件包含漏洞+PHP伪协议绕过
  18. Bp爆破
  19. 目录扫描+PHP弱类型之MD5弱类型
  20. sql注入:工具以及手注
  21. Python脚本+正则表达式
  22. Python脚本
  23. Python脚本
  24. PHP

工具

1.火狐:hackbar
2.抓包改包:burpsuite
3.目录扫描:御剑扫描(记得更新字典)
4.sql注入:sqlmap
5.连接木马:中国菜刀/蚁剑

1.Simple_SSTI_1

解法: 在URL中构造

?flag={{config.SECRET_KEY}}
审题:

相关知识点:
Python沙盒绕过

模板注入(STTI)

模板引擎(STT)

2.Simple_SSTI_1

解题:
1.工具:tqlmap
2.手工

3.Flask_FileUpload

解法:
创建一个文件,写python代码,修改文件格式为 .jpg

import os
os.system('cat /flag')

修改文件格式方法自行搜索

审题:

<!-- Give me the file, and I will return the Running results by python to you! -->
翻译:上传一张图片,会被以python代码执行

相关知识点:
①文件解析漏洞
②远程代码执行漏洞
③python:os模块及相关函数

4. 滑稽

审题:
一张滑稽图片
解法:

目的:查看源码,得到flag
1.F12
2.右键
3.开发者工具
4.ctrl+u

5. 计算器

审题:
输入数字,进行验证,但是长度有限制,只有一个单位
解法:

开发者工具下,打开源代码,修改maxlength为2或3

6. 你必须让他停下

审题:
点开环境,会不断的出现弹窗
解法:

禁止浏览器脚本功能->停止弹窗
查看源代码,发现flag
flag是unicode编码形式->用工具或在线网站 进行解码即可

7. GET/POST

审题:
查看源代码

$what=$_POST['what']; //接受post过来的参数what,存到what里
echo $what;     	  //打印
if($what=='flag')     //如果值是flag
echo 'flag{****}';	  //打印flag

解法:
用火狐的hackbar工具
post data:what = flag
得到flag

8. 矛盾

审题:
查看源代码
发现:先要满足$num不是数字和数字字符串,还要满足$num==1

代码审计-PHP弱类型
在php语言中,相关数据在‘==’两侧相等
PHP弱类型

<?php
var_dump(1=="1");
var_dump(123=='123asd');
var_dump("1"==true);
var_dump("0"==false);
var_dump(-1 == true);
var_dump(true=="php");
var_dump(0==NULL);
var_dump(0=="php");
var_dump(0=="");
var_dump(NULL==false);
var_dump(""==false);
var_dump(array()==false);
var_dump(array()==NULL);
?>

解法:
构造语句

?num == 1a

9. alert

审题:
不停的弹窗
解法:
阻止弹窗,(抓包)
查看源代码
最后一段代码有点奇怪(是unicode格式的字符)
进行unicod转码为ASCII码
得到flag

10. web7

审题:
不停的刷新图片,其中一张图片的源代码里面有flag
解法:
常规操作:
利用burpsuit抓包,不断重放(sendtorepeter),知道到有flag的那张

其他花里胡哨解法:
截图;
禁止js,手动刷新;
开源码,一次次刷新;

11. eval

审题:
文件包含

 <?php
    include "flag.php";
    $a = @$_REQUEST['hello']; //变量名字出现
    eval( "var_dump($a);");
    show_source(__FILE__);	  //操作解释,file<=>文件名
?> 

解法:
构造url:?hello=show_source('flag.php')

12.变量1

审题

flag In the variable !
 <?php  
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
    $args = $_GET['args'];
    if(!preg_match("/^\w+$/",$args)){
        die("args error!");
    }
    eval("var_dump($$args);");
}
?> 

开始是像WEB8一样想,但是不对,
解题
构造url:?args=GLOBALS
$GLOBALS可以调用全局作用域中的所有变量,就可以看到flag

13.头等舱

审题
头等舱
点开环境,真·什么都没有
头等舱头等舱----
解题
火狐F12,网络,消息头,里有flag
在这里插入图片描述

14.网站被黑了

审题
描述:网站被黑了 黑客会不会留下后门

解题
①目录扫描–御剑扫描
(赶时间就:)
构造url:ip+/shell.php
进入登陆界面

②弱口令爆破–burpsuite
bp:抓包,发送到intruder模块,进行爆破

15.本地管理员

审题
题目:本地管理员
进去是管理员系统
通常:用户名为admin,所以猜是admin
解题

密码:test123
解法1:F12,最下面注释,有个代码,进行base64解码可得
解法2:bp爆破密码

但是输入账号密码,得到ip被禁止的消息

本地管理员,本地
bp抓包,发到repeter模块,构造Header头
X-Forwarded-For:127.0.0.1
点击Go
得到flag

16.源代码

审题
看看源代码?
那就看嘛
解题

F12,查看源码,有个script脚本中间,有一堆url,拉出去,解码,最后一行说,拼接
拼接在一起,得到一个假flag,放到框里,submit
得到真flag

17.文件包含

审题
click me?no
(点击)
index.php
(url:http://114.67.246.176:17169/index.php?file=show.php)
解题
文件包含漏洞++PHP协议
PHP://协议

在CTF中经常使用的是
php://filter用于读取源码
php://input用于执行php代码。

构造payload:http://114.67.246.176:17169/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

参考文档:php:// 协议

18.好像需要密码

审题
需要五位数密码
解题
弱密码爆破
使用burpsuite爆破 发包到intruder模块
经过爆破
得到密码
输入密码,得到flag

19.备份是个好习惯

审题
备份是个好习惯
d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427e
解题
御剑扫描目录后台(未扫到可能未更新字典)
得到/index.phph.bak
保存文件,用记事本打开
代码审计


<?php
include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str);
parse_str($str);
echo md5($key1);

echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
    echo $flag."取得flag";
}
?>
 加密的key1等于加密的key2并且不加密的key不等于key2

MD5弱类型碰撞,使用数组绕过即可(学嘛)

对key进行了一次绕过因此构造双重变量:kkeyey1和kkeyey2
最终payload:?kekeyy1[]=1&kekeyy2[]=2(即null==null)

20.成绩查询

审题
sql注入

解题
1.sqlmap工具注入
Bp抓包,复制内容为1.txt文件,移动到kali的家目录下
打开sqlmap
sqlmap -r “1.txt” -dump
直接爆破出flag
也可以按步骤一步步爆破

2.手注

21.秋名山车神(Py)

审题
解题

22.速度要快(Py)

审题
解题

23.cookies(Py)

审题
解题

24.web21(PHP)

审题
解题

25.web22(+命令执行)

审题
解题

26.web23(正则)

审题
解题

27.web24(PHP)

审题
解题

28.web25

审题
解题

29.web26

审题
解题

30.web27

审题
解题

标签:WEB,Bugku,源代码,--,flag,解题,审题,php,解法
来源: https://blog.csdn.net/chenmou40/article/details/116136547