php fastcgi fix path 引起的 /favicon.ico/a.php

今天看这个帖子的时候, 有个人提到 /favicon.ico/a.php 怎么利用?
http://www.wooyun.org/bugs/wooyun-2016-0185114

利用的前提是你能正常上传图片文件, 图片文件的内容是php, 然后你请求/favicon.ico/a.php 的时候, fastcgi 因为找不到a.php, 就去向前找 favicon.ico 作为php 文件去执行了.

官方bug 在这里:
https://bugs.php.net/bug.php?id=50852

<白帽子讲web安全> 在第8章 8.2.3 讲到这个问题细节.

解决是把php.ini 里面的 cgi.fix_pathinfo=1 的值, 改成 0

perl 脚本无法识别参数

问题描述

C:\perl test.pl --param=eric

运行正常, 能识别出 param 的值是 eric

C:\ test.pl --param=eric

脚本能运行, 但是参数识别不出来, test.pl 里面是用的 GetOpt::Long 模块. 这里同样适用于 GetOpt::Std

首先 直接运行 test.pl 能直接运行, 说明 .pl 是和 perl.exe 关联的.
先是怀疑 perl 的 GetOpt 模块有问题, 尝试去替换那个模块, 无解.

然后google 到下面这2个答案:
Why do I have to explicitly add perl before the script for getops to run properly?
How do I make Perl scripts recognize parameters in the Win32 cmd console?

按照这2个描述去修改, 仍旧无法修复.
但是唯一确定的是, 肯定是和文件关联相关的. 下面是几个命令

C:\>assoc .pl  //查看 .pl 文件是关联那个Key
.pl=PerlScript
C:\>ftype PerlScript
PerlScript="C:\Perl\bin\perl.exe" "%1" %*

说明如果你直接运行 .pl 文件, 是在前面加上 C:\Perl\bin\perl.exe 的, 文件名是第一个参数, 后面是其他选项.

解决问题:
打开windows的注册表, 搜索 perl.exe, 如果你看到

"C:\Perl\bin\perl.exe" "%1"

把它改为:

"C:\Perl\bin\perl.exe" "%1" %*

树莓派 raspberry 播放 路由器 上的电影

首先介绍一下情况:

  1. 路由器是基于openWRT的智能路由器;
  2. 路由器上面安装了 BT 客户端, 路由器一直开机, 且低功耗,使用BT下电影有优势;
  3. BT 客户端下的电影存放在路由器挂载的一个移动硬盘上面;
  4. 家里有另外一个树莓派, 它本身具有 HDMI 接口, 可以直接omxplayer播放电影

为什么不用路由器直接播放, 都是ARM的芯片?

  • 路由器的内存只有64M, 上面还跑其他服务, 没有 HDMI 接口,平时智能通过 samba 共享给其他设备.

详细步骤:

  1. 树莓派安装 sshfs
    sudo apt-get install sshfs

  2. 路由器安装 openssh-sftp-server
    ipkg install openssh-sftp-server

  3. 树莓派远程挂载路由器的资源
    mkdir /mnt/remote #创建挂载文件夹
    #挂载 user 是路由器上用户名, /mnt/movies 是路由器是电影文件夹
    sudo sshfs user@192.168.1.1:/mnt/movies /mnt/remote

  4. 播放电影
    omxplayer -o hdmi /mnt/remote/test.mp4

遇到的问题:

  1. 路由器无法安装 sftp-server?
    查看你的 ipkg 的配置文件 /etc/ipkg.conf
  2. sshfs 报错 : sshfs remote host has disconnected
    使用debug 参数去看一下:
    sudo sshfs -o debug,allow_root remote@192.168.1.1:/mnt/X /mnt/remote
  3. sshfs 在debug情况下报错: sh: /opt/libexec/sftp-server: not found
    确认你共享服务器上装有 sftp-server, 没有的话, 去安装
  4. 共享了, 可是没有读权限
    加上 -o allow_other 选项
  5. 树莓派 可以播放, 但是 HDMI 输出没有视频
    配置 /boot/config.txt
    hdmi_force_hotplug=1
    hdmi_drive=2

BitTorrent 协议规范 [中文翻译板]

原文网址 BitTorrent.org

BEP: 3
标题: BitTorrent 协议规范
版本: f61df4010379f5c40090a9b77b73e57db7045dee
最后修改: Fri Oct 11 15:00:20 2013 -0700
作者: Bram Cohen bram@bittorrent.com
状态: Final
类型: Standard
创建于: 10-Jan-2008
过往历史: 24-Jun-2009 (arvid@bittorrent.com), clarified the encoding of strings in torrent files. 20-Oct-2012 (arvid@bittorrent.com), clarified that info-hash is the digest of en bencoding found in .torrent file. Introduced some references to new BEPs and cleaned up formatting. 11-Oct-2013 (arvid@bittorrent.com), correct the accepted and de-facto sizes for request messages

BitTorrent is a protocol for distributing files. It identifies content by URL and is designed to integrate seamlessly with the web. Its advantage over plain HTTP is that when multiple downloads of the same file happen concurrently, the downloaders upload to each other, making it possible for the file source to support very large numbers of downloaders with only a modest increase in its load.

BitTorrent 是一个文件分发的协议. 它以URL识别内容,特地设计为可以与网络无缝集成。

- 阅读剩余部分 -