脚本语言,后门,WEB安全漏洞

脚本语言

常见脚本语言概述

常见的脚本语言有:

PHP: 通用的服务器端脚本语言,可以嵌入HTML中使用,也可以用来开发独立的命令行应用程序。
Python: 一种高级编程语言,具有简洁明了的语法和强大的库支持。
JavaScript:一种用于网页开发的脚本语言,可用于开发交互式网页和跨平台应用程序。
Ruby: 一种简单的面向对象编程语言,强调可读性和简洁性。
Perl: 一种灵活、可扩展的编程语言,被广泛用于文本处理和系统管理。
Bash: 一种运行在Unix和Linux操作系统上的脚本语言,用于编写各种脚本和系统管理任务。
Lua: 一种轻量级、高效的嵌入式脚本语言,被广泛用于游戏开发和嵌入式系统。
JSP: (JavaServer Pages)一种基于Java技术的服务器端脚本语言,它可以用于创建动态Web页面。它的本质是一个Servlet,通过Java代码来生成HTML代码。

ASPX: (Active Server Pages Extended)是Microsoft ASP.NET技术中的一种Web页面技术
它使用C#或VB.NET等编程语言编写,可以被视为服务器端脚本语言。



不是脚本语言:
JavaWeb: ,它是一种使用Java语言编写的Web应用程序开发框架。
JavaWeb开发通常需要使用Java语言以及其他相关的技术和工具,如Servlet、JSP、JDBC、Spring、Hibernate等。
与脚本语言不同,JavaWeb需要在编译后生成Java字节码文件,然后在Web服务器上运行。

CGI: (通用网关接口)是一种标准的协议,用于在Web服务器和客户端之间传输数据。
它定义了Web服务器如何向Web应用程序(通常是脚本语言编写的)发送数据,并接收应用程序处理后返回的数据。
常见的脚本语言如Perl、Python、Ruby等都可以通过CGI协议与Web服务器进行交互。

脚本语言对应的框架(概述)

Python:     Django,Flask,Tornado,Pyramid,Bottle,TurboGears等
Ruby: Ruby on Rails,Sinatra,Hanami等
JavaScript: Node.js,Express.js,Meteor.js,Sails.js,React, Angular, Vue.js等
PHP: Laravel,Symfony,CodeIgniter,Yii,CakePHP,Zend Framework等
Perl: Catalyst,Dancer2,Mojolicious等
Lua: OpenResty, Lapis, Sailor
Bash: ShellCheck, Bash Infinity

脚本语言与安全漏洞的关系

(1)程序源代码编程语言的选取决定漏洞的类型、概率
(2)程序源码偏重不同:php适合小众开发,java适合大型开发

JavaScript:    JavaScript是前端开发的主要语言,但也经常被攻击者用来实施恶意攻击,例如跨站脚本攻击(XSS)。
攻击者利用JavaScript代码注入到网页中,从而在受害者的浏览器上执行恶意代码,
例如窃取用户的cookie、密码等敏感信息。

PHP: PHP是一种常见的服务器端语言,但也容易受到SQL注入、文件包含、代码执行等漏洞的攻击。
攻击者利用这些漏洞,可以在服务器上执行恶意代码、窃取敏感信息等。

Python: Python是一种广泛使用的脚本语言,但也存在一些安全漏洞,例如XML外部实体注入(XXE)、命令注入、代码注入等。
攻击者利用这些漏洞,可以在服务器上执行恶意代码、窃取敏感信息等。

Ruby: Ruby是一种面向对象的脚本语言,但也存在一些安全漏洞,例如跨站脚本攻击、SQL注入、文件包含等。
攻击者利用这些漏洞,可以在服务器上执行恶意代码、窃取敏感信息等。

Perl: Perl是一种通用的脚本语言,但也存在一些安全漏洞,例如跨站脚本攻击、代码注入、文件包含等。
攻击者可以利用这些漏洞,来执行恶意代码或者窃取敏感信息。

Bash: Bash是一个常用的Unix shell,但也存在一些安全漏洞,例如代码注入、文件包含、命令注入等。
攻击者可以利用这些漏洞,在系统上执行恶意代码或者窃取敏感信息。

Lua: Lua是一种轻量级的脚本语言,但也存在一些安全漏洞,例如代码注入、远程代码执行等。
攻击者可以利用这些漏洞,在服务器上执行恶意代码或者窃取敏感信息。

PowerShell: PowerShell是一种命令行脚本语言,但也存在一些安全漏洞,例如代码注入、命令注入、XML注入等。
攻击者可以利用这些漏洞,在系统上执行恶意代码或者窃取敏感信息。

漏洞挖掘代码审计与脚本类型的关系

(1)和对应的编程语言代码都有关系
(2)对这类语言代码函数等的应用都有关系

常见的脚本类型及其相关的漏洞类型

PHP:PHP是一种常用的Web开发语言,常见的漏洞类型包括SQL注入、XSS攻击、文件包含漏洞、代码执行漏洞等。
Python:Python是一种通用编程语言,常用于Web开发、数据分析等领域,常见的漏洞类型包括代码注入、路径遍历漏洞、命令执行漏洞等。
JavaScript:JavaScript是一种常用的客户端脚本语言,常见的漏洞类型包括DOM-based XSS攻击、反射型XSS攻击、基于事件的漏洞等。
Ruby:Ruby是一种动态编程语言,常用于Web开发和系统管理,常见的漏洞类型包括SQL注入、XSS攻击、代码执行漏洞等。
Lua:Lua是一种轻量级的脚本语言,常用于游戏开发、嵌入式系统等领域,常见的漏洞类型包括代码注入、格式化字符串漏洞等。
Perl:Perl是一种通用的脚本语言,常用于Web开发、系统管理等领域,常见的漏洞类型包括命令注入漏洞、文件包含漏洞、代码执行漏洞等。
Bash:Bash是一种Unix/Linux系统下的脚本语言,常用于系统管理和自动化任务,常见的漏洞类型包括命令注入漏洞、环境变量注入漏洞等。
PowerShell:PowerShell是微软公司开发的一种脚本语言,常用于Windows系统管理和自动化任务,常见的漏洞类型包括代码注入漏洞、反序列化漏洞等。

后门

后门是什么?有哪些后门?

后门(Backdoor)指的是一种意图隐藏在计算机系统中的软件或技术,它通常用于绕过正常的安全措施,从而使攻击者能够在系统中实施恶意活动。后门通常被安装在系统中的某个不易察觉的地方,例如操作系统、应用程序、网络协议等,从而使攻击者能够远程控制系统、窃取敏感信息、破坏系统功能等。

=> 利用已知的漏洞或弱点进入系统,或者通过社交工程、钓鱼攻击等方式获取管理员权限并安装后门.

简单来讲,偷偷开个门偷偷搞事情(doge)😂

网站后门

Webshell后门:Webshell是一种可执行的脚本,可以将其嵌入到网站中,从而使攻击者能够远程访问和控制受感染的网站。
Webshell通常使用脚本语言编写,例如PHP、ASP、JSP等,攻击者可以通过Web浏览器或者其他远程工具进行访问和控制。

文件上传后门:攻击者可以通过文件上传漏洞将恶意文件上传到受感染的网站上,然后通过远程访问这些文件来实现对网站的控制。

SQL注入后门:攻击者可以利用SQL注入漏洞将恶意代码注入到网站的数据库中,然后通过执行这些代码来远程控制网站。

逻辑漏洞后门:逻辑漏洞是指网站应用程序的设计或实现问题,攻击者可以利用这些漏洞来绕过网站的安全措施,
并将恶意代码或文件上传到网站上,从而实现对网站的控制。

后门在安全测试中的实际意义

  1. 留后门:下次更方便的进来(至于为什么,懂的都懂)
  2. 一种操作的管道。
  3. 目的:更隐蔽的控制你
  4. 深知攻击行为,然后再去反侦察,找到攻击源。

后门需要了解什么?有哪些玩法?

  1. 打开后直接触发等等
  2. 隐匿控制(看你目的)
  3. 免杀:正常的隐蔽文件,避免被安全软件杀掉。(核心)

免杀(很重要!)

免杀(AV evasion) 是指恶意软件(如病毒、木马、间谍软件等)通过各种技术手段 绕过 杀毒软件、防火墙和其他 安全措施 的攻击方式。免杀技术可以让恶意软件避免被检测和拦截,从而更好地完成攻击行为。

常见的免杀技术

加密和压缩 :恶意软件的源代码被加密和压缩,使其难以被检测和分析。

多次变异 :恶意软件会在不同的计算机上多次变异,以逃避杀毒软件的检测。变异的方法包括改变代码的结构、函数名称、变量名称等。

驻留技术 :恶意软件会利用系统的自启动、服务、驱动程序等功能,将自己隐藏在操作系统的核心部分,使其难以被检测和清除。

DLL劫持 :恶意软件利用Windows操作系统加载DLL的方式,将自己伪装成合法的DLL文件,从而在系统启动时自动运行。

代码注入 :恶意软件将自己的代码注入到合法的进程中,以此控制系统并执行恶意操作。

免杀的实现方式

  1. 源码免杀 :在有源码的情况下,可以定位特征码、加花指令、多层跳转、加无效指令、替换api、重写api、API伪调用等等,这部分内容较多且复杂
  2. 无源码免杀 :在源码不好修改需要对exe进行免杀时,可以加资源、替换资源、加壳、加签名、PE优化、增加节数据等等。
  3. powershell免杀 :因为mimikatz有powershell版或者使用powershell可以加载,所以对powershell的脚本免杀也是一种方式。
  4. 加载器分离免杀 :加载器就是利用了ShellCode和PE分离的方式来达到免杀的效果,不过很多只能加载基于RAW格式或固定格式的shellcode,对exe程序就无能无力了。
  5. 白名单免杀 :白名单主要是使用了rundll32、msbuild、mshta、cscript等多个白名单程序来加载嵌入了木马的jscript脚本

WEB(非常重要)

web组成架构模型

网站组成四部分,以后要思考漏洞在哪个层面。

网站源码(网站攻击比较多)

① 脚本类型
② 应用方向 — 决定了攻击的方式(方向不同,写代码的函数也不同,漏洞也会因此不同)

操作系统

=> Windows Linux MacOS

中间件(搭建平台)

Apache IIS Tomcat Niginx等

数据库

Access mysql Mysql Oracle Sybase Db2 postsql

架构漏洞安全测试简要介绍?

  1. 漏洞就在上面的四种类型
  2. 以后挖洞时要体会那属于哪个层面
  3. 重点:以后搞漏洞时要注意漏洞有什么前提条件

为什么要从web层面为首

  1. Web主流,可以web得权提权
  2. 有时候即使有操作系统漏洞,没满足一定条件,知道了也没用。
  3. 某些软件一定程度上也是通过web浏览器包装的,解析出来就是一个纯粹的web页面

WEB安全漏洞

WEB源码层面的漏洞

  1. SQL注入/XSS/文件上传/代码执行/变量覆盖/逻辑漏洞/反序列化等
常见web源码漏洞
git 源码泄露
svn 源码泄露
hg 源码泄漏
网站备份压缩文件
WEB-INF/web.xml 泄露
DS_Store文件泄露
SWP 文件泄露
CVS泄露
Bzr泄露
GitHub源码泄漏


web层面常见漏洞类型

SQL注入漏洞:攻击者在输入的数据中注入SQL代码,从而让服务器执行恶意代码,可以获取敏感数据,修改数据库等。
XSS漏洞:攻击者在网站的输出页面上注入恶意脚本,使得其他用户在访问这个页面时,会执行这些恶意脚本,从而获取敏感数据。
文件上传漏洞:攻击者上传恶意文件到服务器上,可能导致服务器被入侵、系统被控制等。
代码执行漏洞:攻击者可以通过构造恶意输入,使得服务器执行一些非预期的代码,从而达到攻击目的。
变量覆盖漏洞:攻击者通过修改变量的值,可以影响程序的正常运行,甚至导致系统崩溃。
逻辑漏洞:程序中存在漏洞,可以被攻击者利用来实现攻击目的,如越权访问、绕过认证等。
反序列化漏洞:攻击者可以利用对象序列化的漏洞,构造恶意数据来攻击服务器。

WEB中间件层面的漏洞

  1. 未授权访问等
(一) IIS
1、PUT漏洞
2、短文件名猜解
3、远程代码执行
4、解析漏洞
(二) Apache
1、解析漏洞
2、目录遍历
(三) Nginx
1、文件解析
2、目录遍历
3、CRLF注入
4、目录穿越
(四)Tomcat
1、远程代码执行
2、war后门文件部署
(五)jBoss
1、反序列化漏洞
2、war后门文件部署
(六)WebLogic
1、反序列化漏洞
2、SSRF
3、任意文件上传
4、war后门文件部署
(七)其它中间件相关漏洞
1、FastCGI未授权访问、任意命令执行
2、PHPCGI远程代码执行

WEB数据库层面的漏洞

  1. 内核漏洞–分系统的

WEB系统层面的漏洞

  1. 提权漏洞,源代码漏洞
  2. 文件包含/上传漏洞
  3. 命令注入漏洞
  4. 缓冲区溢出漏洞等

第三方软件层面的漏洞

(1) 电脑上的第三方软件

APP或PC应用层面的漏洞

(1) 网站越简洁,漏洞越少;功能越多,出现漏洞的几率越大。

(2) 客户端是另外一种网站,可能涉及逆向破解等。

(3) APP套壳封装为网站,核心就是网站。

(4) 可以从APP中剖析出各种各样的网站层面的Web协议,分析出APP涉及的网站信息,再转到网站进行安全测试(可以还原为Web页面)。
如果无法还原,则需要进行逆向工程等操作。

参考及资料

常见的Web源码泄漏漏洞及其利用
web中间件常见漏洞
初探免杀之路——免杀方法测试

常见十大漏洞
OWASP Top 10–每4年更新一次
理解Linux内核漏洞
OWASP top 10漏洞