前言:之前一直没有接触过web这方面的题,这次利用暑假时光好好学习,web真的是很有趣,虽然有的题很简单,但可以学习到很多知识,话不多说,做题。

view_source

用老版火狐浏览器,直接查看源码即可。

get_post


利用火狐进行传参,即可得出flag。

robots

做这道题之前,了解一下robots协议,爬虫协议,robots.txt搜索引擎中访问网站的时候要查看的第一个文件,如果有这个文件,robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。

了解robots协议后,做题就好做了,直接访问robots.txt文件。

给了一个PHP文件名,访问一下即可得出flag

backup


不知道,百度百科一下

那加上后缀名即http://111.198.29.45:47771/index.php.bak再访问一下,即可得出flag。

cookie

用burp抓一下包看看
添加后缀名
查看HTTP响应,即可得出flag

disabled_button


根据提示,将disabled删除即可点出flag

webshell


一句话,用菜刀进行连接

连接成功,即可得出flag

simple_php

<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){echo $flag1;
}
if(is_numeric($b)){exit();
}
if($b>1234){echo $flag2;
}
?>

is_numeric() 函数用于检测变量是否为数字或数字字符串。

代码很好理解,传入对应的参数即可得出flag

http://111.198.29.45:52319/?a=a

即可得出

http://111.198.29.45:52319/?b=1236b

即可得出
拼接一下,即可得出flag

command_execution(命令执行)

做题之前,要先了解一下ping功能,waf等。
ping命令的使用方法及功能

WAF主要防护的是来自对网站源站的动态数据攻击,可防护的攻击类型包括SQL注入、XSS攻击、CSRF攻击、恶意爬虫、扫描器、远程文件包含等攻击,相当于防火墙。

命令执行详解

常见的命令执行

command1 & command2 :先执行command2后执行command1
command1 && command2 :先执行command1后执行command2
command1 | command2 :只执行command2
command1 || command2 :command1执行失败,再执行command2(若command1执行成功,就不再执行command2)

除此之外,我们还要了解一些常用的Linux命令。常用 Linux 命令

了解之后,我们便开始做题。
首先ping一下本地即127.0.0.1

ping通本地后,发现传输三个数据包,接下来就用到我们学到的Linux基本命令
查看一下,三个数据包中是否有flag.txt
输入命令127.0.0.1 & find / -name flag.txt

果然有,再输入命令127.0.0.1 | cat /home/flag.txt查看flag.txt文件,即可得出flag。
这里得了解一下cat命令,用来查看文件内容

weak_auth( 弱身份验证 )


试试最常用的admin 123456组合,竟然爆出了flag,真的是弱口令,不过查了其他方法,用爆破的方法也可以做出了,这里记录一下爆破过程。

先在GitHub上下载弱口令字典,用burpsuite进行爆破

用admin作为账号,试试登陆
看来账号就是admin,那么就只爆破密码就可以了
密码随便输入一个,抓一下包


将密码设置为变量
载入字典


发现到123456时,长度不同,所以密码即为123456,登陆一下即可得出flag

xff_referer


在此之前,我们需要了解下

xff——伪造IP地址来源
格式为:
X-Forwarded-For: client1, proxy1, proxy2, proxy3
referer——伪造来源浏览器

伪造XFF头绕过服务器IP过滤
了解之后,便能够做题了

抓包,根据提示修改xff

此时页面显示必须来自https://www.google.com
根据提示,伪造来源服务器,即可得出flag

simple_js

打开之后,直接查看源代码,发现一串JS代码

 function dechiffre(pass_enc){var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";var tab  = pass_enc.split(',');var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;k = j + (l) + (n=0);n = tab2.length;for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));if(i == 5)break;}for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];if(i > 5 && i < k-1)p += String.fromCharCode((o = tab2[i]));}p += String.fromCharCode(tab2[17]);pass = p;return pass;}String["fromCharCode"](dechiffre("\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"));h = window.prompt('Enter password');alert( dechiffre(h) );

要做这道题就得看懂JS代码表达的意思,首先来了解代码中出现的一些方法

split() 方法用于把一个字符串分割成字符串数组。
fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。
prompt()方法用于显示可提示用户进行输入的对话框。

了解之后,便可以观察代码了
这一部分代码分为两个循环,但是仔细观察的话,第一个循环是将前五个Unicode 值,然后返回一个字符串,写一个简单的python脚本验证下

后一个循环功能是一样的,只不过是把后面的Unicode 值,返回成字符串。

返回的pass为
即不管我们输入什么,最终显示都是这个,所以这个是假的密码,那么真正的密码应该就是

十六进制转化为文本字符

再用简单的python跑一下,即可得出flag

题虽然不是太难,但是可以学习到很多知识,接下来得快点学习python以写脚本用,方便做题。

XCTF(攻防世界)—新手web题Write Up相关推荐

  1. XCTF(攻防世界)—进阶web题Write Up(一)

    前言:这段时间做了一些XCTF的web进阶题,真的是学习到了很多知识,就来总结一下. Cat 一开始以为是命令注入,恰好最近学习了命令注入,就先来测试一下: 输入127.0.0.1,发现是可以ping ...

  2. XCTF(攻防世界)—进阶web题Write Up(二)

    前言:继续总结学到的新知识 mfw 在about页面发现,搭建网站时用了git,尝试一下是否为git源码泄露 输入: http://111.198.29.45:36544/.git/ 果然是源码泄露, ...

  3. XCTF攻防世界--第2题快来围观学习

    解题方法写在代码注释里了 题目: #include #include //大概阅读整体代码,通过最后几行代码我们得知我们需要的flag就是代码中的hash变量 //此时我们逆向推到hash变量的来源 ...

  4. XCTF攻防世界Web新手入门题大全

    XCTF攻防世界Web之WriteUp无图版 (Tips:有图版本,请移步我的资源,自行下载doc文档) 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 vie ...

  5. XCTF攻防世界练习区-web题(新手)

    XCTF攻防世界练习区-web题(新手) https://adworld.xctf.org.cn/task?now_checked_num=3&name=web 001 view_source ...

  6. XCTF攻防世界Web之WriteUp

    XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...

  7. 逆向迷宫题总结(持续更新) 2020华南师大CTF新生赛maze,攻防世界新手区:NJUPT CTF 2017,BUUCTF:不一样的flag

    CTF逆向入门:迷宫题学习记录(持续更新) ** 目录 **CTF逆向入门:迷宫题学习记录(持续更新)** (前言) 一. 逆向迷宫题概述 二. 具体题目分析 1. 2019华南师大CTF新生赛maz ...

  8. 攻防世界 新手练习区 MISC+WEB

    攻防世界 新手练习区MISC+WEB MISC 新手练习区 002 pdf 方法1 方法2 003 如来十三掌 004 give_you_flag 005 stegano 006 坚持60s 007 ...

  9. 攻防世界MISC刷题1-50

    目录 1.ext3 2.base64stego 3.功夫再高也怕菜刀 4.easycap 5.reverseMe 6.Hear-with-your-Eyes 7.What-is-this 8.norm ...

最新文章

  1. Myeclipse使用过程配置汇总
  2. c语言c1变成e并输出,【图片】(原创)用纯C变了个变色输出字符的程序。。。【c语言吧】_百度贴吧...
  3. 对于SQL注入的理解
  4. odoo website_15专家使用的Website Builder软件
  5. 游戏开发之动态创建对象及构造函数、析构函数的执行(C++基础)
  6. VR+教育 虚拟现实(VR)智慧教室整体解决方案
  7. php 旅游网毕业论文,旅游网站毕业设计论文(优质范文6篇)
  8. Axure RP 9基础教程(1)——界面及基本操作(看完就会画)
  9. 火狐扩展Firefox extension开发流程(学习记录)
  10. 人生路上好文章[收藏]
  11. Keras 简介与优势
  12. java.lang.IllegalArgumentException: Could not find class异常解决方式
  13. Fintech将重构信贷行业的信用管理现状!
  14. 国际上哪个学校计算机专业好,美国计算机专业大学排名前十有哪些?
  15. 一个业务型算法工程师的技能清单
  16. “凡尔赛文学”是奢侈品电商的“取款机”?
  17. MySQL命令行导出导入数据库和数据表
  18. Python格式化字符串的4种方式
  19. 用MATLAB绘制国债NSS模型,[matlab]用lsqcurvefit或lsqnonlin实现NSS利率期限模型-经管之家官网!...
  20. 基于PageRank的复杂网络社区发现

热门文章

  1. table类型数据提交_OGG数据同步异常问题总结
  2. 机器学习付费专栏的一些简介
  3. 八十、React中的容器组件和无状态组件
  4. 九、玩转JavaScript的数组(五)
  5. java string问题_Java关于String的问题?
  6. ​清华大学提出基于生成对抗神经网络的自然图像多风格卡通化方法并开源代码...
  7. 今日arXiv精选 | 11篇EMNLP 2021最新论文
  8. CVPR 2021 | 天津大学提出PISE:形状与纹理解耦的人体图像生成与编辑方法
  9. 基于IndRNN的手机传感器动作识别
  10. 选对论文,效率提升50% | 本周值得读