【网络安全面经】技术性问题
1.SQL注入原理
主要基于Web应用程序对用户输入数据的合法性缺乏严格的判断或过滤
2.windows上提权的方式和linux提权方式
windows:本地溢出漏洞提权,AT(计划任务提权),SC(创建服务提权),PS(微软官方工具pstool),数据库提权,令牌窃取,DLL劫持,不带引号服务路径提权,不安全的服务特权等
Linux:https://mp.weixin.qq.com/s/62FXmqY8Hs_1UerpjB1Paw1
3.渗透中正向代理和反向代理隧道,用什么工具
-
正向代理:
- Burp Suite:用于Web应用程序的安全测试,提供代理功能,可以捕获和修改HTTP/S流量。
- Fiddler:一个免费且强大的Web调试代理工具,支持HTTP/S流量的捕获和分析。
-
反向代理:
- nginx:可以配置为反向代理服务器,将请求转发到后端服务器,常用于负载均衡和安全访问。
- HAProxy:高性能的TCP/HTTP负载均衡器,常用于实现反向代理功能
https://mp.weixin.qq.com/s/2M6DS1WHXdzJBcrZn3kMAw
4.SQL注入WAF绕过的方法
架构层绕过:找到服务器真实ip,同网段绕过,http和https同时开放服务绕过,边界漏洞绕过,例如边界存在ssrf漏洞,可以做跳板注入。
协议层绕过:分块延时传输、利用pipline绕过、
利用协议未覆盖进行绕过、post,get提交绕过、文件格式绕过、参数污染。
规则层面绕过:编码绕过,等价符号绕过,普通注释内敛注释、缓冲区溢出、mysql黑魔法绕过,白名单绕过、静态资源绕过等等等
5.mysql写shell需要哪些条件
(1)root权限
(2)网站的绝对路径且具有写入权限,能够使用into outfile和into dumpfile来进行写入。
(3)GPC关闭
(4)没有配置–secure-file-priv
6.phpmyadmin如果不能通过out file写shell,还有哪些方式
利用日志备份获取shell
7.如果不是默认路径,如何去获得写shell的路径
数据库查询:show variables like ‘%basedir%’;
查看mysql安装情况
phpinfo页面
报错信息
8.sql注入获取mysql本身路径的函数
@@datadir
9.sql注入延时的方式,sleep的时候,如何加快延时处结果速度
利用DNS(例如使用dnslog平台直接获取数据库名称,版本等)
10.xss绕过csp(内容安全策略)
url跳转、link标签预加载、利用浏览器补全、代码重用、iframe、meta标签
11.xss弹窗函数
alert,prompt,confirm,console.log()
12.ssrf不出网怎么办
根据返回包的特征来进行判断,如果目标端口开放响应时间200MS,未开放则响应时间1000ms等
13.ssrf几种协议知道哪些
file协议、php协议、HTTP协议、gopher协议、dict协议、FastCGI协议、Redis协议、Mysql协议、Soap协议
14.命令执行,不回显如何拿结果,不出网如何
延时,dnslog,http请求
15.如何利用任意文件下载漏洞
下载一些敏感文件,fuzz目录代码审计等
16.如何知道网站目录,tomcat的路径
报错,通过代码:application.getRealPath()来获取路径
17.CSRF如何修复
验证 HTTP Referer 字段,在请求地址或者请求头添加 token 并验证
18.referer可以绕过,如何检测referer能否被绕过
使用子域名绕过
域名增加a-z,0-9可以绕过
域名重写
19.mybadits如何找到sql注入
#{value}
在预处理时,会把参数部分用一个占位符 ? 替代,其中 value 表示接受输入参数的名称。能有效解决 SQL 注入问题${}
表示使用拼接字符串,将接受到参数的内容不加任何修饰符拼接在 SQL 中,使用${}
拼接 sql,将引起 SQL 注入问题
即将sql语句改成#{}形式即可有效防止sql注入
20.如果一个网站被上传了webshell,如何排查入侵点
https://www.cnblogs.com/shellr00t/p/6943796.html#:~:text=Webshell%E7%9A%84%E6%8E%92%E6%9F%A5%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87,%E6%96%87%E4%BB%B6%E3%80%81%E6%B5%81%E9%87%8F%E3%80%81%E6%97%A5%E5%BF%97%20%E4%B8%89%E7%A7%8D%E6%96%B9%E5%BC%8F%E8%BF%9B%E8%A1%8C%E5%88%86%E6%9E%90%EF%BC%8C%E5%9F%BA%E4%BA%8E%E6%96%87%E4%BB%B6%E7%9A%84%E5%91%BD%E5%90%8D%E7%89%B9%E5%BE%81%E5%92%8C%E5%86%85%E5%AE%B9%E7%89%B9%E5%BE%81%EF%BC%8C%E7%9B%B8%E5%AF%B9%E6%93%8D%E4%BD%9C%E6%80%A7%E8%BE%83%E9%AB%98%EF%BC%8C%E5%9C%A8%E5%85%A5%E4%BE%B5%E5%90%8E%E5%BA%94%E6%80%A5%E8%BF%87%E7%A8%8B%E4%B8%AD%E9%A2%91%E7%8E%87%E4%B9%9F%E6%AF%94%E8%BE%83%E9%AB%98%E3%80%82
先使用一些工具,对全站源码进行扫描,对网站修改时间进行排查等等
- 文件分析
a) 文件日期、新增文件、可疑/异常文件、最近使用文件、浏览器下载文件
b) Webshell 排查与分析
c) 核心应用关联目录文件分析 - 进程分析
a) 当前活动进程 & 远程连接
b) 启动进程&计划任务
c) 进程工具分析
i. Windows:Pchunter
ii. Linux: Chkrootkit&Rkhunter - 系统信息
a) 环境变量
b) 帐号信息
c) History
d) 系统配置文件 - 日志分析
a) 操作系统日志
i. Windows: 事件查看器(eventvwr)
ii. Linux: /var/log/
b) 应用日志分析
i. Access.log
ii. Error.log
21.java内存马
内存马(Memory Shellcode)是一种恶意攻击技术,旨在通过利用程序或操作系统的漏洞,将恶意代码注入到系统内存中并执行。与传统的攻击方式不同,内存马不需要将恶意代码写入磁盘上的文件,而是直接在内存中进行操作,从而避开传统的安全防护措施。
内存马的危害性在于它可以绕过许多传统的安全防护机制,例如防病毒软件和防火墙,因为恶意代码不会留下明显的痕迹或文件。此外,由于直接在内存中执行,内存马攻击也更难以被检测和追踪。
**缺点:服务重启后会失效;对于传统内存马,存在的位置相对固定,已经有相关的查杀技术可以检出
21.内存马使用场景
1、禁止外连,不能反弹shell的情况
2、禁止写入文件的情况
3、写入文件会告警的情况
4、不支持.jsp文件解析的情况
22.内存马分类
1、Servlet型内存马,Servlet、Filter、Listener(需要借助于.jsp文件)
2、框架类型内存马,SpringController、Interceptor(需要借助于Java代码)
3、Agent类型内存马(需要借助于.jar文件)
23.内存马注入方式
1、基于JSPWebShell植入内存马
2、通过JavaAgent植入内存马
3、基于JavaWebRCE漏洞植入内存马【如:Fastjon(反序列化、JNDI)、SpringCloudGateway(创建恶意路由)、Log4j2 (JNDI)、Shiro(反序列化)、FreeMarker(SSTI)】
24.redis利用的方式有哪些
6379未授权访问,若是未授权,开启了web服务,知道啦路径有权限,即可写入webshell;
redis密钥登录ssh,利用coruntab反弹shell
25.Udf提权的条件
条件:有root用户账号密码,判断版本信息,小于5.1到处路径随意,大于5.1则在lib\plugin目录下
udf提权就是利用到创建自定义函数,在mysql中调用这个自定义的函数(sys_eval)来实现获取对方主机的system的shell权限,从而达到提权的目的
26.免杀的方法
静态:加壳,加花指令,符合定位特征码
shellcode的话就是做混淆,分离,远程线程注入,管道,加载器,加密等等
白加黑,添加数字签名,修改md5等等
动态:替换相同功能的api,有能力重构api
27.预编译原理
是提前编译SQL语句,将所有的用户输入都当作数据,而非语法
预编译会让数据库跳过编译阶段,也就无法进行词法分析,关键字不会被拆开,所有的参数直接变成字符串进入数据库执行器执行
28.sql注入防护
预编译,装waf,转义,过滤
29.weblogic常见漏洞
反序列化,文件上传,ssrf,未授权命令执行,后台getshell
30.MySQL提权的方法
udf,mof,启动项提权
31.cdn原理加绕过思路
cdn:即内容分发网络,主要作用就是让用户就近获取所需内容,降低网络拥堵,提高用户的响应速度
绕过技术:子域名查询,邮件服务,国外地区请求,dns激励,配置不当泄露,黑暗引擎搜索,扫全网,app抓包,ddos
各种方法的使用:https://mp.weixin.qq.com/s/R5e8Gy3AC3HpTLuootk-TA
32.得到域名的信息收集思路
找到真实ip,端口探测,fofa,shodan等搜索,查看对应的服务,中间件等信息,ip反查域名,再找到子域名、c端、旁站等等,查看网站,挂burp,观察数据包,本地js,目录扫描,备份扫描,网上找类型源码之后进行审计,有app公众号的话可以继续深入
33.内网传输的主要协议
TCP/IP,IPX/SPX协议,NetBIOS与NetBEUI协议,Apple Talk协议
34.文件上传漏洞之验证及绕过
34.1 含义
文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件
34.2 验证及绕过
1.前端验证,前端验证其实就是形同虚设,它只是前端的JS脚本对上传文件做检测,如何判断是否为前端验证呢?在上传时使用burp抓包,没有数据包被拦截,说明为本地JS脚本验证。
绕过方法:直接修改JS代码或者禁用本地JS即可
2.后端验证,又分黑白名单验证,内容验证,其他验证
黑名单绕过:1.特殊解析后缀;2.htaccess解析;3.大小写绕过;4.点和空格绕过;5.:😒 $DATA绕过;6.配合解析漏洞;7.双写后缀绕过
白名单绕过:
1.MIME(多用途互联网文件扩展类型,设定某种扩展名的文件用一种应用程序来打开的方式类型)绕过:通过抓包,将content-type字段改为索要绕过的类型
常见的MIME类型:
text/plain (纯文本)
text/htm1(HTML文档)
text/javascript(js代码)
application/xhtml+xml(XHTML文档)image/gif(GIF图像)
image/jpeg(JPEG图像)
image/png(PNG图像)
video/mpeg(MPEG动画)
application/octet-stream(二进制数据)
application/pdf(PDF文档)
2.%00截断
文件及其内容进行绕过:
1.文件头检测
2.二次渲染
3.条件竞争
4.getimagesize,exif_imagetype验证
35.webshell的底层原理
webshell管理工具就是(客户端/服务器)[C/S]模型中的(C)[Client]客户端,而我们上传了webshell的服务器就是(S)[Server],所以我们在使用webshell工具来对我们所连接到的服务器进行各种管理操作时,其实就是一个客户端与服务端进行请求、响应数据的过程。只不过,不同的管理工具的具体实现略有差别而已,但是本质都是相同的