Igo*_*lov 54 ruby json ruby-on-rails ruby-on-rails-3
我有Ruby on Rails 3.2.11和Ruby 1.9.3的网站.
什么可能导致以下错误:
(JSON::ParserError) "{N}: unexpected token at 'alihack<%eval request(\"alihack.com\")%>
Run Code Online (Sandbox Code Playgroud)
我在日志中有几个这样的错误.所有人都试图评估请求(\"alihack.com \").
部分日志文件:
"REMOTE_ADDR" => "10.123.66.198",
"REQUEST_METHOD" => "PUT",
"REQUEST_PATH" => "/ali.txt",
"PATH_INFO" => "/ali.txt",
"REQUEST_URI" => "/ali.txt",
"SERVER_PROTOCOL" => "HTTP/1.1",
"HTTP_VERSION" => "HTTP/1.1",
"HTTP_X_REQUEST_START" => "1407690958116",
"HTTP_X_REQUEST_ID" => "47392d63-f113-48ba-bdd4-74492ebe64f6",
"HTTP_X_FORWARDED_PROTO" => "https",
"HTTP_X_FORWARDED_PORT" => "443",
"HTTP_X_FORWARDED_FOR" => "23.27.103.106, 199.27.133.183".
Run Code Online (Sandbox Code Playgroud)
199.27.133.183 - 是CLoudFlare IP."REMOTE_ADDR"=>"10.93.15.235"和"10.123.66.198"以及其他我认为是假代理的IP.
这是一个链接人与他的网站有相同的问题来自相同的IP地址(23.27.103.106).
总而言之,所有错误的常见ip是23.27.103.106,他们尝试使用ruby的eval运行脚本.
所以我的问题是:他们试图找到什么类型的漏洞?该怎么办?阻止ip?
先感谢您.
gin*_*ime 65
这似乎是尝试至少测试或利用远程代码执行漏洞.可能是通用的(针对Rails以外的平台),或者早期版本中存在的平台.
然而,实际的错误源于请求是HTTP PUT带有application/json头的事实,但是主体不是有效的json.
curl -D - -X PUT --data "not json" -H "Content-Type: application/json" http://localhost:3000
Rails action_dispatch尝试通过传递要解码的主体来解析任何json请求
# lib/action_dispatch/middleware/params_parser.rb
def parse_formatted_parameters(env)
...
strategy = @parsers[mime_type]
...
case strategy
when Proc
...
when :json
data = ActiveSupport::JSON.decode(request.body)
...
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它不是有效的JSON,并且引发错误,导致服务器报告500.
我不完全确定解决这个问题的最佳策略是什么.有几种可能性:
iptablesPUT或全部)请求./ali.txtnginxapacherack-attackgem 这样的工具并在那里应用过滤器.(见这个机架攻击问题)request_exception_handlergem来捕获错误并从Rails中处理它(请参阅此SO答案和此github问题)PUT在Rails'中阻止routes.rb对所有URL的请求,但是那些明确允许的请求.看起来在这种情况下,错误甚至在它到达Rails的路由之前就会引发 - 所以这可能是不可能的.rack-robustness中间件,赶上JSON解析错误的东西像这种配置在config/application.rb我目前倾向于选择#3,#4或#6.对于其他类型的机器人/扫描仪或将来可能弹出的其他无效请求,所有这些都可以派上用场......
很高兴听到人们对各种替代解决方案的看法
小智 10
我在自己的网站上看到了一些奇怪的日志条目[不使用Ruby],谷歌把我带到了这个帖子.我的参赛作品的IP不同.[120.37.236.161]
经过多一点探讨之后,这是我大多猜测/受过教育的猜测:
首先,在我自己的日志中,我看到了对http://api.alihack.com/info.txt的引用- 检查了这个链接; 看起来像是注入PHP的尝试.
那里还有一个"register.php"页面 - 提交将您带到"invite.php"页面.
进一步检查这个域名带我到http://www.alihack.com/2014/07/10/168.aspx(页面是中文,但谷歌翻译帮助我在这里)
我希望这个"黑蜘蛛"工具已被脚本小子修改,并被用作地毯轰炸机,试图找到任何"易受伤害"的网站.
谨慎地添加一个自动拒绝任何尝试,包括"alihack"子字符串到您的配置.
| 归档时间: |
|
| 查看次数: |
14508 次 |
| 最近记录: |