安全基础~实战应用

news2025/2/3 9:58:43

文章目录

  • 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远程连接的方法:参考连接

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

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

相关文章

浅谈在线监测系统与配电能效平台在供水水厂的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201800 【摘要】针对自来水厂工艺老化资金有限的问题&#xff0c;设计水厂在线监测系统&#xff0c;采用安科瑞&#xff0c;对原水滤后水、出厂水进行采样分析&#xff0c;并通过基于组态的上位机系统实现水质数据的实时监测。该系统…

深入了解UI标签栏设计细节:你不能错过的要点

UI 标签栏的作用有哪些&#xff1f; 导航是移动 UI 中最常见的组成部分&#xff0c;通常放置在 UI 标签栏上&#xff0c;以帮助我们在不同的页面之间切换。UI 标签栏可以保持界面的可控性&#xff0c;并提高可用性。简而言之&#xff0c;UI 标签栏可以加强交互&#xff0c;让用…

渲染图和效果图的一样吗?渲染图与效果图区别?

在建筑、设计及电影制作等一系列领域&#xff0c;你可能经常听说渲染图和效果图这两个词汇。它们虽然在视觉表现上有许多相似之处&#xff0c;但在实质上却有着极其不同的特性和用途。此文主要探讨提供优质效果图云渲染服务&#xff0c;以及渲染图与效果图之间的区别。 一、 效…

快递收发线上管理教程

前台快递收发几乎是每家公司行政前台的“必修课”&#xff0c;所以网络上制度模板满天飞&#xff0c;但现实中能彻底解决快递收发管理难题的几乎为零&#xff0c;那前台快递收发管理&#xff0c;究竟要如何才能摆脱制度的桎梏&#xff1f; 纵观各种前台快递收发制度范本&#…

Java可变参数(学习推荐版,通俗易懂)

定义 可变参数本质还是一个数组 示例代码 注意事项 1.形参列表中&#xff0c;可变参数只能有一个 2.可变参数必须放在形参列表的最后面 注意是最后面。 name也可以为int类型

Vuex的学习-2

Vuex的核心概念 StateMutationAction 1.State State提供唯一的公共数据源&#xff0c;所有共享的数据都统一放在Store的State中进行存储。 const store new Vuex.Store({state : { count: 0 } }) 这是渲染的页面 组件访问数据的第一种方式 组件访问数据的第二种方式 // 1…

数据结构和算法笔记2:二分法

二分法网上有两种写法&#xff0c;一种左闭右闭&#xff0c;一种左闭右开&#xff0c;个人习惯左闭右闭的写法&#xff0c; 有序数组查找数 这是标准二分法&#xff0c;对应力扣的704. 二分查找&#xff1a; 求值为target的索引 int search(vector<int>& nums, i…

通过几个基本概念说一下为什么openGauss是当下之选?

Database、Schema、User都是数据库的基本概念&#xff0c;SQL标准中也有明确规范。但不同数据库的具体实现也不尽相同&#xff0c;有些甚至大相径庭。这就导致用户在做国产化选型和数据库迁移时可能会遇到种种困难。本文从这几个基本概念展开&#xff0c;说说为什么openGauss系…

YACS(上海计算机学会竞赛平台)三星级挑战——两数之和

题目描述 给定 n 个整数 a[1]​,a[2]​,⋯,a[n]​&#xff0c;并且保证 a[1​]≤a[2​]≤⋯≤a[n]​ 再给定一个目标值 t&#xff0c;请判断能否找到 a[i]​ 与 a[j]​&#xff0c;ai​aj​t 且 i≠j。 输入格式 第一行&#xff1a;单个整数n&#xff1b; 第二行&#xf…

JavaScript高级 构造函数与原型篇

构造函数与原型 1、构造函数 构造函数是一种特殊的函数&#xff0c;主要用来初始化对象&#xff0c;即为对象成员变量赋初始值&#xff0c;它总与new一起使用。我们可以把对象中一些公共的属性和方法抽取出来&#xff0c;然后封装到这个函数里面。 // 定义学生构造函数func…

数字图像处理-空间域图像增强-爆肝18小时用通俗语言进行超详细的总结

目录 灰度变换 直方图&#xff08;Histogram&#xff09; 直方图均衡 直方图匹配&#xff08;规定化&#xff09; 空间滤波 低通滤波器 高通滤波器 ​​​​​​​ 本文章讲解数字图像处理空间域图像增强&#xff0c;大部分内容来源于课堂笔记中 灰度变换 图像增强&…

SpringBoot+JaywayJsonPath实现Json数据的DSL(按照指定节点表达式解析json获取指定数据)

场景 若依前后端分离版手把手教你本地搭建环境并运行项目&#xff1a; 若依前后端分离版手把手教你本地搭建环境并运行项目_前后端分离项目本地运行-CSDN博客 在上面搭建SpringBoot项目的基础上&#xff0c;并且在项目中引入fastjson、hutool等所需依赖后。 Jayway JsonPat…

找不到msvcp120dll,无法继续执行代码的解决方法大全

当你尝试启动一个应用程序或游戏&#xff0c;并且遭遇到一个错误信息&#xff0c;告诉你“找不到msvcp120dll,无法继续执行代码”或者收到类似的提示&#xff0c;这说明你的操作系统中缺失了一个关键的动态链接库文件&#xff0c;即 msvcp120.dll。这种情况其实并不罕见&#x…

Java开发框架和中间件面试题(3)

14.Spring事务中的隔离级别有哪几种&#xff1f; 在TransactionDefinition接口中定义了五个表示隔离级别的常量&#xff1a; 1⃣️ISOLATION DEFAULT&#xff1a;使用后端数据库默认的隔离级别&#xff0c;Mysql默认采用的可重复读隔离级别&#xff1b;Oracle默认采用的读已提…

智能优化算法应用:基于金鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于金鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于金鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.金鹰算法4.实验参数设定5.算法结果6.参考文献7.MA…

深入理解 JavaScript 函数:提升编程技能的必备知识(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

python/C 生成beta分布的随机数

python/C 生成beta分布的随机数 文章目录 python/C 生成beta分布的随机数前言一、beta分布理论知识二、python 生成服从beta分布的随机数三、C语言生成服从beta分布的随机数 前言 想把一个算法用C语言实现&#xff0c;其中涉及到了beta分布取随机数&#xff0c;记录一下结果 一…

JOSEF约瑟 零序电流互感器DH-30L DH-70L 配套DJ-ZB1漏电继电器使用

系列型号 DH-16L型配套用零序&#xff08;剩余&#xff09;电流互感器DH-20L型配套用零序&#xff08;剩余&#xff09;电流互感器 DH-23L型配套用零序&#xff08;剩余&#xff09;电流互感器DH-30L型配套用零序&#xff08;剩余&#xff09;电流互感器 DH-45L型配套用零序&am…

【Linux笔记】文件查看和编辑

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux学习 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 命令 cat (Concatenate and Display): more 和 less: nano 和 vim (文本编辑器): 结语 我的其他博客 前言 学习Linux命令行和文件…

测试框架|Burp Suite几个基本工具的使用

前阵子项目上想通过测试工具在网页上模拟返回错误代码 500 来查看页面的错误处理&#xff0c;然后去调查了下 burp suite&#xff0c;看了些基本工具的使用文档。虽然最后证实 burp suite 只能用来处理页面测试应用程序的实际行为和响应&#xff0c;而不是尝试模拟不存在的问题…