第一个 Parameter Command Injection 。 测试请求直接往我参数里塞命令 { "currenPage": " ping+-c+1+ping.311_e885d7f4-ad03-4cef-8287- d62b4c076fee.securityip.appsechcl.com", "pageSize": 10, "issueState": 1 }
当然我也检测拦截了,currenPage 是 int 类型,它传 string
{ "code": 4002, "message": " 参数格式不正确或缺少参数", "result": [ { "field": "$.currenPage", "message": "The JSON value could not be converted to System.Int32. Path: $.currenPage | LineNumber: 0 | BytePositionInLine: 96." } ] }
可客户不这么想,人家只知道软件扫出高危,硬要你修复。
还有一种 shell 命令注入
{ "flowState": " 0$(../../../../../../../../../../../../bin/sleep 11)", "title": "", "schoolName": "", "currenPage": 1, "pageSize": 10 }
这真的能执行吗?(请原谅,小弟真不熟练 Makedown,这点内容用上得写个一小时)
1
Visitor233 OP 感觉这玩意资源好少,百度,bing,google 都没什么最新内容,QQ 群也找不到
|
2
PMR 2021-02-25 18:52:40 +08:00 via Android
1 误报
2 重放请求 看页面的 waiting time 超过 11s 即是 RCE |
3
jzmws 2021-02-25 19:09:25 +08:00
1. AppScan 这种东西要自己琢磨一遍遍改
2. 安全的这种东西很多都不会在网上公布的 |
4
scukmh 2021-02-25 19:12:17 +08:00
改成 touch /tmp/test,看看有没有文件就知道了。
|
5
whale4u 2021-02-25 23:49:54 +08:00
贴下请求和响应包。
|
6
KyonLi 2021-02-26 08:00:57 +08:00 via iPhone
是不是返回 200 就判断成攻击成功了,改成返回 400 试试呢
|
7
lupus721 2021-02-26 10:07:11 +08:00
看见危险的东西直接返回 403,或者前面加个 waf,当然这个都是治标不治本的方法。
肯定还得从程序内部找办法。最重要的是,请求的命令为啥会被执行呢,两个应该都是 RCE,一定是被定义为高危,作为扫描软件可能测试的 ping 或者 touch 之类的,如果是攻击者,一个命令,你服务器就被控制了,这类漏洞一定是高危的必须得修。。 |
8
Visitor233 OP @whale4u 没有验证手机号码不能回复图= =
|
9
Visitor233 OP @lupus721 确实得修,毕竟是面向公众的应用,不得不防
|
10
Visitor233 OP |
11
lupus721 2021-02-26 13:06:25 +08:00 1
"ping+-c+1+ping.311_e885d7f4-ad03-4cef-8287- d62b4c076fee.securityip.appsechcl.com" 这是执行了一个命令,商业扫描器会配套一些公网的测试接口,应对命令执行或者 xss 漏洞,一些漏洞可能无法直接有返回,所以准备公网服务器做响应
他会监听 securityip.appsechcl.com 这个域名,一旦有人请求他的 dns 或者 ping 的报文,他就会根据请求的 variant_id 和 scan_guid 来定位到底是哪个任务的什么漏洞被执行了,认定这个漏洞是存在的,因为看不到完整的报告,所以不好说打到底是不是误报。 vX–ping-<variant_id>-<scan_GUID>.securityip.appscan.com https://blog.hcltechsw.com/appscan/hey-dns-with-hcl-appscan-domain-name-server/ |
12
Visitor233 OP @lupus721 这是个 ping 命令,真执行了,如果换成一个下载命令,或者什么 shell 提权之类的,服务器是不是就沦陷了?
|
13
Visitor233 OP @lupus721 非常感谢,您的提供的这篇文章非常有用
|
14
Slin 2021-02-26 17:02:40 +08:00
注入了参数 如果你返回结果 和没有注入 之前结果是一致的 扫描软件会认为有漏洞
还有你返回信息不要带堆栈信息 你代码行号都出来了 |
15
lupus721 2021-02-26 17:06:44 +08:00
是的,如果是我的话会反弹回来一个 shell,如果有权限维持要求还会加计划任务。如果你是 root 权限跑的程序,对方就不需要提权,直接最高了,还可以偷偷 shadow 或者放个定制版的 ssh 抓管理员现有密码的,能执行命令玩法就太多了。
|