ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Bugku刷题--WEB篇

2021-06-16 20:32:10  阅读:228  来源: 互联网

标签:WEB Bugku 源代码 -- flag 解题 审题 php 解法


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

知识点记录

  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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有