js不精通xss就不会
以后还会再系统学习JavaScript 现在只为了熟悉xss先预习
章节点
1、PHP
功能:新闻列表,会员中心,资源下载,留言版,后台块,版引用,框架开发等技术:输入输出,超全局变量,数据库操作,逻辑架构,包含上传&下载删除;
技术:JS&CSS混用,Cookie,Session操作,MVC架构,ThinkPHP引用等
安全:原生PHP开发安全,模版引用安全,第三方插件安全,TP框架安全等
2、JS
功能:登录验证,文件操作,SQL操作,云应用接入,框架开发,打包器使用等
技术:原生开发,DOM,常见库使用,框架开发(Vue,NodeJs),打包器(webpack)等
安全:原生开发安全,NodeJs安全,Vue安全,打包器webpack安全,三方库安全问题等
3、Java、、、
-scaled.png)
一、JS原生开发-JQuery库-Ajax技术-前端后端-安全验证处理
js原生开发-文件上传-变量&对象&函数&事件
js导入库开发-登录验证-JQuery库&Ajax技术
js导入库开发-逻辑购买0JQuery库&Ajax技术
JS章节点
功能:登录验证,文件操作,商品购买,数据库操作,云应用接入,框架开发等
技术:原生开发,DOM树,常见库使用(JQuery),框架开发(Vue,Nodejs-->小程序)等
(一)参考
(二)JS原生开发-文件上传-变量&对象&函数&事件
1、布置前端页面
2、JS获取提交数据
3、JS对上传格式判断
4、后端对上传数据处理
架构:html js php - upload.php
前端js进行后缀过滤,后端php进行上传处理
安全问题:
1、过滤代码能看到分析绕过
2、禁用JS或删除过滤代码绕过
(三)JS导入库开发-登录验证-JQuery库&Ajax技术
0、布置前端页面
1、获取登录事件
2、配置Ajax请求
3、后端代码验证
4、成功回调判断
架构:html js login.html - logincheck.php
后端php进行账号判断,前端JS进行登录处理
安全问题:
登录成功的跳转页面还是在js里(用bp截获返回包,修改后再放包回前端,则提示成功并跳转)只有验证代码写在后端代码才安全些
(四)JS导入库开发-逻辑购买-JQuery库&Ajax技术
1、布置前端页面
2、获取登录事件
3、配置Ajax请求
4、后端代码验证
5、成功回调判断
架构:html js shop.html-shopcheck.php
安全问题:
业务逻辑写到js里有问题
购买成功后的流程不能写到前端
(五)实例测试-某违规APP-密码找回&JS验证逻辑安全
判断前端js数据包的处理逻辑
二、JS应用-DOM树-加密编码库-断点调试-逆向分析-元素属性操作
(一)JS原生开发-DOM树-用户交互
DOM:文档操作对象
浏览器提供的一套专门用来操作网页代码内容的功能,实现自主或用户交互动作反馈
安全问题:
本身的前端代码通过DOM技术实现代码的更新和修改,但是更新修改的数据如果由用户来,就会造成DOM——XSS攻击
1、获取对象
标签:直接写
Class:加上符号
id:加上符号#
<h1 id="myHeader" onclick="getValue()">这是标题</h1>
document.querySelector('h1')
document.querySelector('.id')
document.querySelector(#myHeader')
2、获取对象属性
<hl id="myHeader" onclick="qetValue()">这是标题</h1>
const hl=document.querySelector('h1')
const id=h1.id
console.log(id)
3、操作元素数据
innerHTML 解析后续代码
innerText 不解析后续代码
DOM型插入js代码执行xss,未成功要么是浏览器不支持,要么是编写问题
4、操作元素属性
className src id等
<img src="iphone.jpg" width="300" height="300"></img
const src=document.querySelector('img')
src.src='huawei.png'
(二)JS导入库开发-编码加密-逆向调试
利用js的库进行加解密
//Base64
//MD5
<script src="js/md5.js"></script>
<script>
var strl='xiaodisec'
var str encode =md5(str1);
console.log(str encode)
</script>
//SHA1
//HMAC
//AES
//DES
动态调试 控制台
MD5('xiaozhu')--->字符串
再去看发送的包传输的数据,输入xiaozhu,发现同样MD5加密后的字符串
如果传输的值是前端加密的,那么找到加密函数后,比如执行加密后的注入语句,就可以测试
三、JS应用-NodeJS指南-原型链污染-Express框架-功能实现-审计
ctf-nodejs之一些小知识 | F1veseven Blog
环境搭建-NodeJs-解析安装&库安装
功能实现-NodeJs-数据库&文件&执行
安全问题-NodeJS-注入&RCE&原型链
案例分析-NodeJS-CTF题目&源码审计
开发指南-NodeJS-安全SecGuide项目
(一)环境搭建-NodeJs-解析安装&库安装
0、文档参考
https://www.w3cschool.cn/nodejs
1、Nodejs安装
Node.js — Run JavaScript Everywhere
2、三方库安装
express
Express是一个简洁而灵活的node.is web应用框架
body-parser
node.js中间件,用于处理 JSON,Text和URL编码的数据,Raw,
cookie-parser
这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。
multer
node.js中间件,用于处理enctype="multipart/form-data"(设置表单的MIME编码)的表单数据
mysql
Node.js来连接MySQL专用库,并对数据库进行操作
MongoDB最多
安装命令:
npm i express
npm i body-parser
npm i oookie-parser
npm i multer
npm i mysql
(二)功能实现-NodeJs-数据库&文件&执行
登录操作
1、Express开发
2、实现用户登录
3、加入数据库操作
文件操作
1、Express开发
2、实现目录读取
3、加入传参接受
(三)命令执行(RCE)
1、eval('console.log();') #nodejs
调用代码执行把字符串当做代码解析
2、exec & spawnSyn('calc/notepad')
#nodejs 脚本调用系统命令执行
(四)安全问题-NodeJs-注入&RCE&原型链
1、SQL注入&文件操作
2、RCE执行&原型链污染 --->CTF
3、NodeJs黑盒无代码分析
实战测试Nodejs安全:
判断:参考前期的信息收集(F12返回包也能判断)
黑盒:通过对各种功能和参数进行payload测试
白盒:通过多代码中写法安全进行审计分析
原型链污染 ---> ctf题型
如果攻击者控制并修改了一个对象的原型,(_proto_)
那么将可以影响所有和这个对象来自同一个类、父祖类的对象。
(五)案例分析-NodeJS-CTF题目&源码审计
1、CTFSHOW几个题目 web334-344
2、YApi管理平台漏洞
开发指南-NodeJs-安全SecGuide项目
https://github.com/Tencent/secguide
三、JS应用-WebPack打包器-第三方库JQuery-安装使用-安全检测
(一)打包器-WebPack-使用&安全
webpack是一个模块打包器。在webpack中会将前端的所有资源文件都作为模块处理。它将根据模块的依赖关系进行分析,生成对应的资源。
五个核心概念:
1、【入口(entry)】:指示webpack应该使用哪个模块,来作为构建内部依赖图开始。
2、【输出(output)】:在哪里输出文件,以及如何命名这些文件。
3、【Loader】:处理那些非JavaScript文件(webpack自身只能解析JavaScript和json)。
webpack本身只能处理JS、JSON模块,如果要加载其他类型的文件(模块),就需要使用对应的loader。
4、【插件(plugins)】:执行范围更广的任务,从打包到优化都可以实现。
5、【模式(mode)】:有生产模式production和开发模式development。
开发者模式打包出来的是很长的js文件
用html引用打包出来的js文件
f12还能看到过程,看到逻辑(用哪几个文件打包出来的)
生产者模式的代码很短很短 不会泄露源码
Webpack使用
1、创建需打包文件
2、安装webpack库
3、创建webpack配置文件
4、运行webpack打包命令
安全:
1、webPack源码泄漏-模式选择
原生态JS:前端语言直接显示源代码
Nodejs:服务端语言浏览器不显示源代码
Webpack:打包模式选择开发者模式后会造成源码泄露(Nodejs vue)
(二)第三方库-JQuery-使用&安全
jQuery是一个快速、简洁的JavaScript框架,是一个丰富的JavaScript代码库。
设计目的是为了写更少的代码,做更多的事情。它封装Javascript常用功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
1、使用
引用路径: jquery下载所有版本(实时更新)
2、安全
检测:research.insecurelabs.org/jquery/test/
测试:CVE-2020-11022/CVE-2020-11023
Comments NOTHING