分类 默认分类 下的文章

telnet http 实例

telnet 例子:

xiatian@kali:~$ telnet blog.tianxiaohui.com 443
Trying 112.64.53.9...
Connected to blog.tianxiaohui.com.
Escape character is '^]'.
GET / HTTP/1.1
Host: blog.tianxiaohui.com

HTTP/1.1 302 Moved Temporarily
Server: nginx/1.0.14
Date: Mon, 28 Mar 2016 12:41:55 GMT
Content-Type: text/html
Content-Length: 161
Connection: close
Location: https://blog.tianxiaohui.com/?

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx/1.0.14</center>
</body>
</html>
Connection closed by foreign host.

下面是telnet 百度 主页的:

xiatian@kali:~$ telnet www.baidu.com 80
Trying 61.135.169.125...
Connected to www.a.shifen.com.
Escape character is '^]'.
GET / HTTP/1.1
Host: www.baidu.com

HTTP/1.1 200 OK
Date: Mon, 28 Mar 2016 12:43:50 GMT
Content-Type: text/html
Content-Length: 14613
Last-Modified: Wed, 03 Sep 2014 02:48:32 GMT
Connection: Keep-Alive
Vary: Accept-Encoding
Set-Cookie: BAIDUID=8DE87DAF466F323D5338FC4C788C25FD:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: BIDUPSID=8DE87DAF466F323D5338FC4C788C25FD; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: PSTM=1459169030; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: BDSVRTM=0; path=/
P3P: CP=" OTI DSP COR IVA OUR IND COM "
Server: BWS/1.1
X-UA-Compatible: IE=Edge,chrome=1
Pragma: no-cache
Cache-control: no-cache
BDPAGETYPE: 1
BDQID: 0x91477ff30001c2ff
BDUSERID: 0
Accept-Ranges: bytes

<!DOCTYPE html><!--STATUS OK-->
<html>
<head>

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 Pi - 读书笔记

Raspberry Pi 2 B 概要: https://www.raspberrypi.org/products/raspberry-pi-2-model-b/

Raspberry Pi 的基本输入输出接口:

GPIO: General Purpose Input and Output 通用输入输出接口
DSI: Display Serial Interface 用15针扁平线缆连接显示屏
CSI: Camera Serial Interface 连接摄像头

Raspbian 预装了 LXDE (Lightweight X11 Desktop Environment) 的图形桌面环境. 可以通过 raspi-config 设置默认启动与否. 如果没启动可以在名两行通过 startx 启动.

Raspberry pi 的 GPIO 无法连接到模拟信号输出的传感器上,必须通过一个模数转换器(ADC) 芯片, 才能读取模拟值.

官方关于GPIO: https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/
更多关于GPIO的内容: http://pinout.xyz/

WIFI 协议 读书笔记

PKI: Public Key Infrastructure, 有又称 非对称加密 asymmetric encryption;
PSK: Pre-Shared Key.
MAC: Media Access Control;
WPA: Wi-Fi Protected Access;
TKIP: Temporal Key Integrity Protocol;
MIC: Michael integrity check, TKIP 使用这个 Michael 作为完整性check的方法.
TSC: TKIP sequence, 类似 IV;
TLS/SSL :Transport Layer Security/Secure Sockets Layer;
SSH: Secure Shell;
EAP: extensible authentication protocol;
FCS: frame check sequence, 有很多实现, CRC 32 就是其中一种实现算法;
ICV: Integrity Check Value, MAC 层加密之前后边追加 ICV, 加密之后的 frame 上追加的是 CRC, CRC可以被中间人截获,重算, ICV 不可能, 因为没有被解密, 无法重算;
MSDU: MAC service data unit, IP层传给 MAC 层的数据单元, 可以拆分成多个 MPDU;
MPDU: MAC protocol data unit;
RC4: Rivest Cipher 4, Rivest 设计的第4代加密算法, 加密解密用一个函数.

使用命令行扫描无线访问点:
iwlist wlan0 scanning
使用命令行配置访问点: (iwconfig 相对于ifconfig, 只设置 wireless 相关的接口设置).
iwconfig wlan0 essid "tp_link_89s3sd"
使用命令行设置IP
ifconfig wlan0 192.168.0.2 netmask 255.255.255.0 up
显示路由表 (显示或者操作路由表)
route -n

WEP -> RC4 -> 128 (104 bit key + 24 bit IV) -> 流加密 -> 24 bit IV 明文传输 -> IV reuse.
WEP -> 两种Key -> Default Key[4 keys] 和 Key Mapping Key

WPA -> TKIP -> RC4
RSN -> WPA2 ->

802.3 -> Ethernet -> Hub
802.11 -> WLAN -> AP (Infrastructure)

802.11 -> Infrastructure & ad-hoc mode

802.11 和 WIFI 的关系就是, 一个是理论, 一个是实际实现.

WEP
RSN (WPA + WPA2).

加密算法: 流式加密/块加密
解密方式: 对称加密/非对称加密

WPA2 is used in CCMP (counter with CBC MAC protocol) mode for implementing AES in 802.11i, including:

-128-bit keys;
-Using AES in CBC-MAC mode for calculating MIC and AES in counter mode for data encryption; and
-Guaranteeing 48 bit initialisation vector.

WEP 加密过程:
WEP.png

WEP, WPA, WPA2 对比
wepwpawpa2Diff.jpg