攻防世界——Web新手练习区

news2024/9/22 13:25:51

目录

view_source

get_post

robots 

​backup

cookie 

 disabled_button

simple_js 

xff_referer

 weak_auth

command_execution

simple_php


view_source

 知识点:

查看网页源代码的几种方式:

  • 按F12键,点击elements可以查看源代码
  • 快捷键:ctrl+u
  • 在url前面加上view-source:

 

get_post

 知识点:

get和post区别:

get方法提交可以直接在url中写入:

post提交我们可以在火狐浏览器使用插件HackBar:

robots 

来自百度百科的解释:

 思路:看完上述解释后,我们首先去看看robots.txt文件。

此时就会提示我们flag位置

backup

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

看完题目描述我们就应该把重点放在备份文件上,因此就需要先了解一些关于备份文件的知识。进入第一个页面后我们就有了大概方向,从备份文件名下手。接着去百度搜索

 备份文件后缀名:“.git” 、“.svn”、“ .swp” “.~”、“.bak”、“.bash_history”、“.bkf”

然后我们发现该备份文件的后缀名是bak,访问该地址下的index,php,bak;然后我们会下载相应的文件。用记事本打开就可以看到Flag

cookie 

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

看完题目描述我们知道这道题考的是cookie知识点,首先百度。

这时候我们发现它是存储在用户本地的,此时我们果断F12,寻找一下cookie。

 此时我们访问cookie.php,看一下有没有新的线索

线索很明显,我们直接看response。请求和回复都是F12查看。

 disabled_button

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

看完题目描述我们应该首先了解下前端按钮知识。大概率与按钮属性有关。

发现是因为该标签添加了该属性所以不能点击,那么我们如果把这个属性删除,那么我们就可以点击此按钮;此时我们F12。

 删除该属性,然后点击flag。会发现flag显示在页面。

simple_js 

知识点总结:

  • 首先就是建议大家掌握一下js基本语法
  • 编码与解码知识

这道题进去我们输入密码之后会出现如下界面,确定之后就是就是一个空白页面,没有任何线索;此时我们只能F12。

 进入我们会发现一个<script>代码,这是我们解决这道题的唯一线索。这就需要我们有一定的js基础,能够理解代码

<script>
//定于一个dechiffre函数
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(',');
    //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;
    //console.log(p);
    return pass;
}
//55,56,54,79,115,69,114,116,107,49,50
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>

通过对上述代码的分析我们发现输入密码之后的弹窗与密码无关,因为这个函数与参数无关,返回结果都是一样的;所以我们把思路转移到这

很明显这是编码后的十六进制,我们对其解码可以得到。

解码思路:首先我们发现这是一个前面加了\x的十六进制,首先将其转换为10进制,然后从ASC||码表中找对应的字符(也可以使用js中函数fromCharCode())。

 但此时我们要想从几个数字得到Flag,然后我们从题目描述发现已经告诉了我们Flag格式

那么我们就可以尝试把这几个数字变一种形式,尝试一下看看是否会成功。

<script>
    n=String.fromCharCode("55,56,54,79,115,69,114,116,107,49,50");
    document.write(n);
    </script>

此时我们把返回的字符串放回题目给的格式中,会发现这就是我们要找的Flag。

xff_referer

题目描述:X老师告诉小宁其实xff和referer是可以伪造的。

看完题目描述我们唯一能做的就是了解xff和referer,百度搜索xff

 

对xff和referer有了一定了解之后,我们知道在http头字段中,所以我们进行抓包(我这里用的burpsuite),然后根据她的提示进行伪造

 weak_auth

题目描述:小宁写了一个登陆验证页面,随手就设了一个密码

看完题目描述我们就知道这是一个密码爆破,通常在爆破之前我们先进行尝试一下常见的密码,如果不成功的话在进行爆破。

方法一:

我们尝试用python代码进行爆破:

import requests
url="http://61.147.171.105:52883/check.php"
with open("password.txt","r") as t:
    for i in t.readlines():
        data1={"username":"admin","password":i.strip()}
        flag=requests.post(url,data=data1).text
        if 'cyberpeace' in flag:
            print(flag)
            break

 方法二:

用bp抓包进行爆破,此处就不详细讲解。

command_execution

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

知识点:Linux命令

Linux命令总结

看完题目描述我们首先应该了解一下waf是什么,

然后我们唯一的线索就是ping这个输入口,题目的意思是命令执行,那很有可能就是利用ping这个命令传入一些命令并且可以执行得到我们想要的结果。

 然后我就开始尝试:
命令:ls /(意思为根目录下的文件夹)

果然执行出了我们想要的结果

随后我们就开始查找Flag,输入命令find / -name "flag*"(/表示的是根目录,*表示的是通配符)

随后查看第一个文件内容cat /home/flag.txt 

即可看到Flag 。

simple_php

看完题目描述之后我们就知道这道题考的是php代码。首先就要需要一定的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;
}
?>

我们知道它是服务端的语言,所以a和b应该是web传过去的。

我们随便输入一个a使第一个if为真,输出flag。但是我们发现这个Flag是错误的;所以继续让第二个if正确,输出第二个flag。

注意:php是弱类型语言。php弱类型问题 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/98994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《图解TCP/IP》阅读笔记(第六章 6.1、6.2)—— 传输层的作用、端口号

第六章 TCP与UDP TCP与UDP和赫赫威名&#xff0c;在此前几章已略有耳闻。 TCP提供可靠的通信传输&#xff0c;而UDP则常被用于让广播和细节控制交给应用的通信传输。 首先&#xff0c;我们先来回顾一下传输层的定义。 上一章中提到过&#xff0c;IP中有一个协议字段&#x…

猿如意|程序员的如意神器之【chat GPT】测评。

chat GPT测评1、使用感受2、功能展示3、期待优化地方3.1 猿如意网页版搜索功能3.2 chat GPT3.2.1 测试抢券才能体验3.2.2 聊天体验1、使用感受 首先&#xff0c;需要对猿如意进行点赞。 正如宣传语所说&#xff0c;猿如意&#xff0c;程序员的的如意兵器&#xff0c;这句话&am…

[附源码]Node.js计算机毕业设计个性化旅游线路推荐系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

WordCloud库简介与使用示例

今天继续给大家介绍Python相关知识&#xff0c;本文主要内容是WordCloud库简介与使用示例。 一、WordCloud库简介与安装 WordCloud是一款Python的第三方库&#xff0c;可以用于生成词云。词云可以以词语为基本单位&#xff0c;然后根据词语的出现频率确定词语的大小&#xff…

linux red hat 8.0 root密码破解

简介&#xff1a; root用户是linux用户最大权限的用户&#xff0c;如果不慎将其密码忘记是不可直接更改的&#xff0c;只能通过破解的方式来重置root密码。 linux系统的启动过程&#xff1a; 1 开机自检&#xff08;POST&#xff09;&#xff0c;初始化部分硬件 2 搜素可用…

嵌入式从业者应知应会知识点 - 索引

大家好&#xff0c;我是痞子衡&#xff0c;是正经搞技术的痞子。本系列痞子衡给大家介绍的是嵌入式从业者应知应会知识点。 嵌入式开发需要掌握的知识点非常多&#xff0c;不同的技术方向有不同的知识侧重点&#xff0c;本系列试图整理总结嵌入式开发&#xff08;尤其是软件&a…

毕业设计 stm32车牌识别 - 单片机 嵌入式 物联网 机器视觉

文章目录0 前言1 简介2 主要器件3 实现效果4 设计原理5 部分核心代码5 最后0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉学长…

juc-3-volatile

目录 1 多线程下变量的不可见性及解决方案 2 不可见性解决方案 2.1 加锁方式解决 2.2 使用volatile关键字 2.3 while(true)速度快调用本地线程内存&#xff0c;加延时即可访问主内存的共享变量 3 volatile不保证原子性以及解决方案 3.1 案例 volatile 验证不是原子性 3.…

详细解析预处理

预处理一.总体概述1.注释去除2.宏替换二.宏定义1.数值宏常量2.字符串宏常量3.用宏定义注释符号4.用宏定义表达式&#xff08;难点&#xff09;1.第一种情况2.第二种情况5.#undef&#xff08;宏的有效范围&#xff09;1.两个问题2.#undef的使用3.一段代码的理解三.条件编译1.#if…

基于nodejs商城系统开发与设计(项目源码+论文设计+ppt答辩+视频录制)

网上购物商城系统以弥补传统购物方式的弊端。在目前的商城里&#xff0c;如果采用网上商城方式&#xff0c;用户购物时就不需要到店里面排队&#xff0c;这样不仅能实时地了解商品的特色&#xff0c;而且方便了顾客&#xff0c;同时也减轻了商城的服务压力。随着WLAN技术的普及…

计算机毕设Python+Vue新文道考研机构在线教学辅导系统(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

python的panda库读写文件

目录 1.读取excel文件 &#xff08;1&#xff09;语法 &#xff08;2&#xff09;实例 2.读取cvs文件 &#xff08;1&#xff09;语法 &#xff08;2&#xff09;实例 3.读取txt文件 &#xff08;1&#xff09;语法 &#xff08;2&#xff09;实例 4.写入文件 &…

【driver.js】基础使用

介绍 driver.js: 轻量级、无依赖性、普通的 JavaScript 引擎&#xff0c;可在整个页面上推动用户的注意力; &#x1f506;突出显示页面上的任何&#xff08;字面上的任何&#xff09;项目✋阻止用户交互&#x1f4e3; 创建功能介绍&#x1f453;为用户添加焦点转移器&#x1f6…

【Flask框架】——21 Flask上下文

上下文&#xff1a;即语境&#xff0c;语意&#xff0c;在程序中可以理解为在代码执行到某一时刻时&#xff0c;根据之前代码所做的操作以及下文即将要执行的逻辑&#xff0c;可以决定在当前时刻下可以使用到的变量&#xff0c;或者可以完成的事情。 Flask中有两种上下文&…

UDP的报文结构和注意事项

UDP的报文结构和注意事项一、传输层协议二、UDP报文结构一、传输层协议 传输层实现了端到端之间的传输&#xff0c;重点关注的是起点和终点。 核心的协议有两个&#xff1a; 二、UDP报文结构 大部分教科书给出的报文结构都是这样的&#xff1a; 其实只是为了排版方便~~ 实…

关于进程的几个问题

作者&#xff1a;~小明学编程 文章专栏&#xff1a;JavaEE 格言&#xff1a;热爱编程的&#xff0c;终将被编程所厚爱。 今天给大家分享几个关于进程的小问题 1.什么是进程&#xff1f; 2.进程是怎么管理的&#xff1f; 3.进程里面的PCB里都有啥&#xff1f; 4.进程的调度是怎…

解释器模式

文章目录解释器模式1.解释器模式的本质2.何时选用解释器模式3.优缺点4.解释器模式的结构5.实现计算器加减操作解释器模式 当想解析一个文件或者其他内容时&#xff0c;可以根据规律自己定义一种文法&#xff0c;并定义一个解释器&#xff0c;然后解析这种文法&#xff0c;以达到…

MATLAB-自定义函数拟合(fittype-高斯拟合)

在回归拟合分析时,一般情况下,MATLAB会直接提供常用的类型,用fittype创建拟合模型,至于MATLAB具体提供了哪些模型,参见帮助“List of library models for curve and surface fitting”,如果库中没有自己想要的拟合表达式形式,可以自己进行定义,具体介绍如下: 1. fitty…

嵌入式:ARM间接寻址、变址寻址与多寄存器寻址

文章目录寄存器间接寻址基址加偏址寻址&#xff08;变址寻址&#xff09;偏移地址传送数据类型块拷贝寻址&#xff08;多寄存器寻址&#xff09;块拷贝寻址示例寄存器间接寻址 寄存器间接寻址就是以寄存器中的值作为操作数的地址&#xff0c;而操作数本身存放在存储器中。例如…

尚医通 (三十七) --------- 定时任务与统计

目录一、就医提醒1. 搭建定时任务模块 service-task2. 添加就医提醒处理二、预约统计1. ECharts2. 获取医院每天平台预约数据接口3. 添加 feign 方法4. 搭建 service-statistics5. 前端展示一、就医提醒 我们通过定时任务&#xff0c;每天 8 点执行&#xff0c;提醒就诊。 1.…