安全基础~实战应用

文章目录

  • HTTP请求头应用
    • X-Forwarded-For
    • HTTP动作练习(修改请求方式)
    • 浏览器信息伪造(修改User-Agent)
    • 来源请求伪造(referer应用)
  • 密码的应用
    • SQL注入漏洞测试(前部分)
    • PHP_encrypt_1(ISCCCTF)
  • XShell连接
    • Linxu连接
    • Windows连接

HTTP请求头应用

X-Forwarded-For

原理作用

一般的客户端(例如:浏览器)在发送HTTP请求时,并不会设置X-Forwarded-For头,当请求在到达第一个代理服务器时,代理服务器会在请求字段中加上X-Forwarded-For这个字段,并将其值设置为客户端的IP地址,后面如果还有更多的代理服务器,会依次将Ip地址追加到X-Forwarded-For这个字段中,最终当请求到达了Web应用服务器,应用会通过获取X-Forwarded-For头取出最左边的IP地址,即为客户端的真实IP地址。

如果客户端在发起请求时,请求头上带上一个伪造的X-Forwarded-For,由于后续每层代理只会追加而不会覆盖,那么最终到达应用服务器时,最左边的IP地址就是客户端伪造的IP地址。

应用

墨者学院-入门级-投票常见漏洞
安卓手机端常见User-Agent
IP地址伪造

HTTP动作练习(修改请求方式)

  • 提示
    题目提示
  • 进入靶场
    靶场显示
  • 根据提示发现请求方式为get,太长了
    eg
  • 修改请求方式,bp抓包,右键change request method,得到key

浏览器信息伪造(修改User-Agent)

  • 展示
    展示
  • 打开靶场,点击文章,提示信息
    hint
  • 打开bp抓包,修改User-Agent = Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69 MicroMessenger/6.6.1 NetType/2G,放包,即可得到key。

来源请求伪造(referer应用)

  • 提示
    hint

  • 打开后提示
    提示

  • referer的作用:
    Referer字段实际上告诉了服务器,用户在访问当前资源之前的位置。这往往可以用来用户跟踪。

    一个典型的应用是,有些网站不允许图片外链,只有自家的网站才能显示图片,外部网站加载图片就会报错。它的实现就是基于Referer字段,如果该字段的网址是自家网址,就放行。

  • 打开bp抓包,修改如下所圈字段
    bp

  • 修改为http:://www.goole.com即可得到key

密码的应用

SQL注入漏洞测试(前部分)

  • 墨客靶场
    靶场展示
  • 发现URL中存在类似base64样的东西
    discover
  • 御剑扫描,该ip地址下有news文件夹可以访问
    news文件夹
  • 访问该文件夹,下载zip压缩包
    zip
  • 解压为list.php,进行代码审计
    //解密过程
    function decode($data){
    	$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128,'',MCRYPT_MODE_CBC,''); //打开加密算法和模块(算法名称、加密模块位置、加密模式CBC、加密模式的路径)
                                                       					        //mcrypt_module_open打开成功返回家密描述符     $td = 加密描述符
    	mcrypt_generic_init($td,'ydhaqPQnexoaDuW3','2018201920202021'); //初始加密(加密描述符,加密密码,偏移量)
    	$data = mdecrypt_generic($td,base64_decode(base64_decode($data)));//解密数据    data密文
    	mcrypt_generic_deinit($td);//结束加密,执行清理工作
    	mcrypt_module_close($td);//关闭加密模块
    	if(substr(trim($data),-6)!=='_mozhe'){                                  //判断后6个字符是否等于_mozhe
    		echo '<script>window.location.href="/index.php";</script>';  //不等于重定向页面
    	}else{
    		return substr(trim($data),0,strlen(trim($data))-6);       //等于则回显数据
    	}
    }
    
  • 搜索函数可知,AES算法加密,其输出密文可以是base64,但此地解密了两次,也就是说需要先使用base64解密一次之后,在对其进行AES解密。
    原文:ZU1JOGMzSmVMMHQwZHhNNBdiMO56Zz09
    base64解密:eI18c3JeLOtOdxM7wb3Nzg==
    解密

PHP_encrypt_1(ISCCCTF)

  • bugku界面显示
    eg
    fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=

  • 下载附件php,代码审计

    function encrypt($data,$key)
    {
        $key = md5('ISCC');
        $x = 0;
        $len = strlen($data);	// 明文长度
        $klen = strlen($key);
        for ($i=0; $i < $len; $i++) { 
            if ($x == $klen)
            {
                $x = 0;
            }
            $char .= $key[$x];
            $x+=1;
        }		// char为key,并将后面扩充key的前面。
        for ($i=0; $i < $len; $i++) {
            $str .= chr((ord($data[$i]) + ord($char[$i])) % 128);
        }		// 此时密文的长度也是明文的长度
        return base64_encode($str);		// base加密传出
    }
    
  • 计算出密文的长度,即明文的长度为38

    import base64
    
    C = "fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA="
    C1 = base64.b64decode(C).decode()
    print("len of MI is",len(C1))
    # len of MI is 38
    
  • md5加密为32位,所以key/char为前32位后拼接key前6位,即key = 729623334f0aa2784a1599fd374c120d729623

    import hashlib
    key = hashlib.md5()		#构造一个hashlib的对象
    key.update('ISCC'.encode('utf-8'))		#update对指定字符串进行加密
    key = key.hexdigest()
    key = key + key[0:6]
    
    print(key)
    # 729623334f0aa2784a1599fd374c120d729623
    
  • 解出明文,得到flag

    a为明文,b为char,c为密文,即给出的密文(base64解密)
    由于键盘可见字符明文ASCII码不大于256,所以仅仅只用如下思维即可
    ( a + b ) % 128 = c
    将$str视为c,即密文(base64解密),$char/key视为b,则a为明文
    
    要求计算出明文(以下仅代表ord(i))	:
    	当 b > c时,分析可知,剩余的肯定来自于a,直接 c - b即可
    	当 b < c时,分析可知,剩余的肯定来自于a,直接 c - b + 128即可
    
    M = ""
    for i,j in zip(C1, key):
        # print(ord(i),ord(j))
        if ord(i) > ord(j):
            M = M+chr(ord(i)-ord(j))
    
        else:
            M = M+chr(ord(i)-ord(j)+128)
    print(M)
    # Flag:{asdqwdfasfdawfefqwdqwdadwqadawd}
    

XShell连接

Linxu连接

  • 查看是否连接ssh,需要安装服务器才能使用
    仅仅安装了客户端
    仅安装ssh客户端
    安装了服务器,并已经开启ssh服务
    安装了服务器

  • 安装shh服务器:apt-get install openssh-server

  • 安装成功之后,启动ssh服务,命令:/etc/init.d/ssh start

Windows连接

使用mstsc远程连接的方法:参考连接

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot+Redis的Bloom过滤器

1.保姆级Linux安装Redis ①把redis.tar.gz下载到linux中&#xff0c;并用命令tar -zxvf安装 ②安装完成进入目录输入make进行编译&#xff0c;编译完成后输入make install 进行安装 ③创建两个文件夹mkdir bin mkdir etc 将redis目录下的redis.conf文件移动到etc文件中&…

磁盘类型选择对阿里云RDS MySQL的性能影响

测试说明 这是一个云数据库性能测试系列&#xff0c;旨在通过简单标准的性能测试&#xff0c;帮助开发者、企业了解云数据库的性能&#xff0c;以选择适合的规格与类型。这个系列还包括&#xff1a; * 云数据库(RDS MySQL)性能深度测评与对比 * 阿里云RDS标准版(x86) vs 经济…

医院影像科PACS系统源码,医学影像系统,支持MPR、CPR、MIP、SSD、VR、VE三维图像处理

PACS系统是医院影像科室中应用的一种系统&#xff0c;主要用于获取、传输、存档和处理医学影像。它通过各种接口&#xff0c;如模拟、DICOM和网络&#xff0c;以数字化的方式将各种医学影像&#xff0c;如核磁共振、CT扫描、超声波等保存起来&#xff0c;并在需要时能够快速调取…

Verilog基础:时序调度中的竞争(二)(创建分频时钟时,使用阻塞赋值)

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 作为一个硬件描述语言&#xff0c;Verilog HDL常常需要使用语句描述并行执行的电路&#xff0c;但其实在仿真器的底层&#xff0c;这些并行执行的语句是有先后顺序…

汽车制造厂设备故障预测与健康管理PHM

在现代汽车制造工业中&#xff0c;设备的可靠性和稳定性对于保证生产线的高效运行至关重要。为了提高生产效率、降低维修成本以及确保产品质量&#xff0c;汽车制造厂逐渐采用设备故障预测与健康管理&#xff08;PHM&#xff09;系统&#xff0c;以实现对设备状态的实时监测和预…

第11章 GUI Page411~420 步骤五 支持其他图形

运行效果&#xff1a; 源代码 //item_i.hpp 抽象“图形元素”接口定义 #ifndef ITEM_I_HPP_INCLUDED #define ITEM_I_HPP_INCLUDED#include <wx/gdicmn.h> #include <wx/dc.h>class IItem { public://作为接口&#xff0c;记得要有虚析构virtual ~IItem(){}//使用…

linux静态ip配置方法(vmware虚拟机)

1、背景 自己搭建了一个虚拟机&#xff0c;vmware虚拟机&#xff0c;如果使用动态ip,经常变换地址&#xff0c;登录不方便。 优点&#xff1a; 静态网络配置的好处是该服务器地址是静态ip的&#xff0c;不会随着网络更换而出现波动。 2、配置方法 2.1 进入centos系统&#…

算法与数据结构--散列表与哈希算法

引入 我们知道c的set和unorder_set&#xff08;map本质上也是set&#xff0c;就是把set的存储对象换成键值对结构体&#xff09;&#xff0c;set底层是红黑树实现的&#xff0c;那么unorder_set是怎么实现的呢&#xff1f;这一节就来讲讲实现unorder_set的哈希表&#xff0c;也…

量化交易学习笔记:XGBoost 在量化选股中的应用

一、引言 本篇文章通过借鉴传统机器学习算法——XGBoost——对相同的量价因子进行实验&#xff0c;方便与深度学习模型进行对比实践。 二、算法介绍 XGBoost 是在 Gradient Boosting&#xff08;梯度提升&#xff09;框架下实现的机器学习算法&#xff0c;全称为“极限梯度提…

css 实现满屏升空的气球动画

问题一 怎么实现满屏气球&#xff1f;简单理解就是多个气球的合并&#xff0c;难道要写多个盒子吗&#xff1f;确实是这样子&#xff0c;但可以有更好的办法&#xff0c;其实就是通过原生操作多个盒子生成&#xff0c;所以只需要实现一个颜色、大小、位置可自定义的气球即可。…

AngularJS

理解实现代码的逻辑为主要&#xff0c;代码怎么写为次要。 参考资料&#xff1a; 《AngularJS入门与进阶》&#xff0c;江荣波著 前端开发常用框架 React&#xff1a;由Facebook开发&#xff0c;用于构建用户界面的JavaScript库&#xff0c;以组件化和虚拟DOM著称。 Angular&…

牦牛角划破眼睑,幼儿紧急就医抢救眼睛

前几天深夜&#xff0c;成都爱尔眼科医院收治了一位患儿&#xff0c;年仅2岁&#xff0c;被父亲抱在怀中与邻居一起从西藏来到成都。因孩子父亲无法用普通话交流&#xff0c;医生从邻居口中了解孩子无意间右眼被牦牛角击中眼皮断裂了。在当地医院接受检查&#xff0c;但无法实施…

锐捷配置PVLAN

一、实验拓扑 二、实验目的 PVLAN可以通过主VLAN和辅助VLAN的概念&#xff0c;部署隔离技术&#xff0c;实现用户间的互访控制。 三、实验配置 SW2 Ruijie >enable Ruijie #configure terminal Ruijie (config)#vlan 20 Ruijie (config-vlan)#private-vlan community …

4.使用 Blazor 构建 Web 应用程序

微软官方培训 了解如何通过 Blazor Web 用户界面框架构建你的第一个 Web 应用程序。 https://learn.microsoft.com/zh-cn/training/paths/build-web-apps-with-blazor/?viewaspnetcore-8.0 8个模块 目录 微软官方培训 1.使用 Blazor 进行 Web 开发的简介 2.使用 Blazor…

【网络技术】BGP 基础与概述

该笔记主要作用与 BGP 路由协议的基础和概述讲解&#xff0c;其萌芽作用 参考视频&#xff1a;红茶三杯 关键词阐述&#xff1a;AS 独立自治网络系统机构 前置知识 在我们学习 BGP 路由之前所学习的所有动态路由策略&#xff0c;都同属一个路由类中&#xff1a;IGP BGP 路由协…

为什么越来越多公司开始用低代码开发?

时代洪流的走向&#xff0c;我们无法左右&#xff0c;能够把握的&#xff0c;只有做好自己。如何在寒冬来之不易的机会中&#xff0c;生存并且壮大。 不知道大家有没有发现&#xff0c;今年的低代码赛道异常火热&#xff0c;但火热的背后才值得思考&#xff0c;市场需求持续被挖…

信号与线性系统翻转课堂笔记7——信号正交与傅里叶级数

信号与线性系统翻转课堂笔记7——信号正交与傅里叶级数 The Flipped Classroom7 of Signals and Linear Systems 对应教材&#xff1a;《信号与线性系统分析&#xff08;第五版&#xff09;》高等教育出版社&#xff0c;吴大正著 一、要点 &#xff08;1&#xff0c;重点&a…

音视频类App广告变现如何破局,最大化广告变现收益,让应用增收?

音视频App已然成为了我们日常获取、发布和交换信息的重要方式&#xff0c;在音视频行业不断的拓展中&#xff0c;用户的渗透率提升。 据数据显示&#xff0c;我国网络视听用户的规模已达9亿人次&#xff0c;网民使用率也突破了90%。庞大的市场规模和用户需求吸引了大批开发者和…

[已解决] Ubuntu远程桌面闪退+登录显示“远程桌面由于数据加密错误 , 这个会话将结束“

两个月前&#xff0c;由于跑代码在Ubuntu配置环境&#xff0c;乱七八糟的下载了很多东西&#xff0c;导致了一系列问题..... 问题1 Ubuntu远程桌面闪退 实验室有两台服务器&#xff0c;IP后三位分别为141和142&#xff0c;其中141在输入密码后立即闪退&#xff0c;142可以正常…

Open3D点云处理简明教程

推荐&#xff1a;用NSDT编辑器快速搭建可编程3D场景 这是“激光雷达入门”文章的延续。 在这篇文章中&#xff0c;我们将查看用于处理点云的 python 库和 Open3D 数据结构&#xff0c;执行可视化并操作点云数据&#xff0c;以便进行后续的分析处理。 如果你需要快速预览3D点云…