朱利安·阿桑奇系列访问:《明日的世界》

四月 21st, 2012 22 次阅读 0 条评论

The world tomorrow系列是由朱利安·阿桑奇主持的采访节目,包括十二段采访,第一集于2012.4.17在网上发布。节目延续了WikiLeak一贯的风格,将秘密公开于世,所有的访问都是秘密进行的,并且可以看到这次也是受到了众多追随者的拥护,可见各国政府和安全机构仍然拿这位高调而桀骜不训的自由主义战士没有办法。节目制作的目的是要从与正规媒体不同的角度,揭露不同的观点和事实,给政治家,改革者提供改善世界的想法。

“The World Tomorrow” is a dynamic new television discussion series featuring Julian Assange as host. It is a collection of twelve interviews featuring an eclectic range of guests, who are stamping their mark on the future: politicians, revolutionaries, intellectuals, artists and visionaries. -- "Offical Site"

(以下内容需要翻墙才能访问)

http://worldtomorrow.wikileaks.org

分类: 网络与安全 标签: WikiLeak 

【转载】好站: SQL Injection/XSS Cheat Sheet

二月 7th, 2012 138 次阅读 0 条评论

看到一篇文章里面不少有用的资料,本着拿来主义的精神转载如下:

最近很流行 Cheat Sheet, 把一些常用該知道的東西整理好的小抄(或許也可以說是懶人包?), 印出來立在桌邊, 不過印超過兩張就發現桌子沒地方放, 好像也蠻頭大的.. XD

今天正巧看到一篇不同於其它 Cheat Sheet 的文章: SQL Injection Cheat Sheet,這篇文章把常用的 SQL Injection的方法都列出來, 來看 SQL Injection 的危險程度(針對 MySQL, SQL Server, PostgreSQL, Oracle... 等).

不曉得 SQL Injection 是什麼, 可以看 M$ 的解說:SQL Injection (資料隱碼) - 駭客的 SQL填空遊戲及應用... XD

 順手整理 Cheat Sheet:

  • Cheat Sheets
  •  - 多種程式語言 Cheat Sheet, 輸出格式統一,印出來也很漂亮

  • XSS 筆記
  •  - 上面英文的不想看, 就看這個好了.. XD

既然都有了 SQL Injection, 那當然也得要有 XSS, 先看一些做法及說明:

PHP 少用 PHP_SELF, 或最好別用 PHP_SELF, 可看下述討論:

不過要防範也不是那麼困難, 總之, 沒有處理過的字串, 要轉成 HTML 輸出前, 要先經過 htmlentities/htmlspecialchars 處理就可以了.

總結: XSS 就是只要能在你頁面 Alert JS, 就能幹很多壞事(之前有寫一些 Demo Code,改天找到再放出來), 再來一樣是 Cheat Sheet 如下(壞人就是這樣子玩你的站的)...

PS: 網路上很多壞人呀~~ 很危險的~... XD

原文地址:http://blog.longwin.com.tw/2007/03/xss_sql_injection_cheat_sheet_20070317/

分类: 网络与安全 标签: Cheatsheet 

铁道部12306网站余票查询工具

二月 4th, 2012 90 次阅读 1 条评论

本程序仅供研究使用,出现问题不负责任。冷酷

使用方法:

  1. 使用浏览器登录https://dynamic.12306.cn/otsweb/。建议使用Chrome,IE无法复制cookie。
  2. 将cookie复制下来,粘贴到脚本中替换原来的cookie。
  3. 修改脚本中的date变量,from_station,to_station,出发地和目的地的车站代号可以从这里查到,或者从页面中获取到。
  4. 浏览器页面不要关闭(关闭cookie会失效),执行脚本,后台每3秒钟查询一次,如果发现有指定类型的余票,会弹出提示框。可以修改脚本设定需要提示的类型 (如硬座,卧铺) 。

下载地址:TicketQuery.py

 

分类: Windows 网络与安全 标签: Python 

由换硬盘引起的麻烦——GRUB引导ISO相关问题

十二月 31st, 2011 341 次阅读 1 条评论

最近买了四个月的联想Y570笔记本电脑不幸硬盘坏了,上一个用了八年的联想本也是因为硬盘坏了才更新换代。这次刚好又赶上泰国发洪水,联想750G硬盘缺货,加上售后那边管理混乱,无奈之下跑了好几趟中关村的维修站才终于给换了一块临时的250G硬盘,可谓是费尽周折。

新硬盘到手,开始自力更生安装Win7,没想到又遇到了麻烦。

我用的是西部数据500G移动硬盘,一个分区用来引导和安装操作系统,另一分区存放软件、资料、电影等等。引导分区装的是GRUB2(grub 1.98),引导Ubuntu10.04,11.04都没问题,当时觉得GRUB2怎么说也是GRUB Legacy的升级版,功能应当更强大,结果偏偏引导不了WinPE,WinXP,Win7的ISO文件。GRUB2可以通过loopback命令将iso映射成驱动器,例如:

menuentry "Ubuntu Jaunty Live CD" {
    loopback loop (hd0,3)/steve/archive/iso/linux/karmic-desktop-amd64.iso
    linux (loop)/casper/vmlinuz isofrom=/dev/sda3/steve/archive/iso/linux/karmic-desktop-amd64.iso root=/dev/sda3 boot=casper quiet splash noprompt
    initrd (loop)/casper/initrd.lz
}

依次类推我觉得引导Windows ISO应该是这样的:

menuentry "Windows 7 Installation" {
    loopback loop (hd0,1)/Inst/Win7/win7.iso
    chainloader (loop)
}

网上也有人是这么说的,但是我试过无论是chainloader (loop)还是chainloader (loop)+1都不行,不是提示Invalid file name '',就是提示invalid signature。一番google之后,发现这个问题似乎是GRUB2本身就有的,由于不同的ISO引导方式有很大不同,特别是不同的操作系统的ISO。最终结论就是:GRUB2中的chainloader无法引导windows ISO!而在ubuntu中文论坛上有人提出的方法就是GRUB2引导GRUB Legacy然后再引导WinPE或者Windows ISO。

既然GRUB2不是那么万能,于是我只得又重新用GRUB4DOS提供的WinGrub工具给移动硬盘装成了GRUB Legacy(grub 0.97)。GRUB Legacy支持用map的方式把ISO映射成驱动器,然后再chainloader。但是我用网上说的如下方法引导时,也是出现了十分诡异的问题:

title Windows 7
map (hd0,1)/Inst/Win7/win7.iso (0xff)
map --hook
chainloader (0xff)

map的时候提示"Error 38: The number of heads per cylinder must be specified",然后我手动加上--heads-per-cylinder=0参数之后,又提示什么sectors per track must be specified,于是又加上--sectors-per-track=0。再一引导,提示"Filename must be either an absolute pathname or blocklist"。看似平淡无奇,实际暗藏杀机。我怀疑是map在映射iso的时候出了问题,或者说是分析iso格式的时候出了问题,但是又查不出具体问题所在。

最后只得回归GRUB4DOS,看网上说GRUB4DOS比GRUB Legacy的功能有所增强,不知道这两个运行方式上到底有什么区别,以后有时间再研究一下。GRUB4DOS 0.4.4在map的时候完全正常,不需要指定--heads-per-cylinder和--sectors-per-track,引导WinPE,WinXP,Win7什么的也没问题。唯一美中不足的是引导起来Win7和联想OKR7安装盘之后在安装过程中有些文件会提示找不到,估计是由于这种映射毕竟和真实光驱还是不一样,实际安装过程中还是按照从光盘中读取。最后采用的解决方案就是把ISO中的文件解压到移动硬盘引导分区根目录下,然后chainloader +1。。。

终篇:

在不懈努力下,勤奋刻苦的码农终于在他的新硬盘上成功安装上了联想OKR7和Windows7 Ultimate,并且移动硬盘也从GRUB2引导换成了GRUB4DOS chainload GRUB2,从此天下太平,百姓安居乐业。

 

分类: Windows Linux 标签: GRUB 

HTC myTouch 3G Slide刷到最新2.2.1系统后重新恢复旧有系统

九月 13th, 2011 476 次阅读 0 条评论

前一段时间把手机系统更新到了最新的2.2.1 OTA,结果发现获取ROOT的漏洞基本上都被补上了,于是想尽办法重新刷回CyanogenMod。但是在CM官网上只给出了用Goldcard获取root的教程,无奈我的SD卡又没法做成Goldcard,貌似要2GB的Sandisk才行。后来试了XDA-Developer论坛上的许多方法都不行,最后在CM的论坛上找到了一个方法,成功刷机。现把它翻译过来如下:

这个方法是用来对2.2OTA获取Root:

1. 点击这里下载Root.zip

2. 解压缩Root.zip到android sdk/platform-tools目录下(和adb.exe同一个目录)。或者也可以把adb.exe的目录添加到path环境变量里。

3. 执行Root.bat。该步会利用psneuter漏洞获取root。

4. 现在进入adb shell应该就能看到#提示符了。

5. 点击这里下载Eng.zipESPRIMG.zipupdate.zip

6. 手机挂载成移动硬盘。

7. 把ESPRIMG.zip和update.zip拷贝到手机sd卡上,放到根目录下。

8. 手机恢复成充电模式。

9. 解压缩Eng.zip到android sdk/platform-tools目录下,类似第2步,然后执行eng-prep.bat。

10. 在adb shell下打入:

cd /data/local
chmod 04755 *
/data/local/flash_image misc /data/local/mtd0.img
exit
adb reboot bootloader

11. 当看到fastboot界面的时候按power键,当出现提示选项的时候按volume up键。

12. 重启进入Recovery模式,选择apply: update.zip from /sdcard

13. 刷ROM

大功告成!

 

原文:

Ok, this is how to root the 2.2 OTA:


1. Download THIS file
2. Unzip "Root.zip" to your C:/SDK_Tools/Platform-Tools/ directory
3. Double click "Root.bat"
4. You should now have the # sign in Command Prompt
5. Download THIS File THIS file and THIS
7. Mount usb storage
8. copy ESPRIMG.zip and update.zip that you downloaded to the root of your sdcard
9. Unmount usb storage
10. Unzip "eng.zip" to yous platform-tools directory and click eng-prep.bat
11. Type:
cd /data/local
chmod 04755 *
/data/local/flash_image misc /data/local/mtd0.img
exit
adb reboot bootloader
11. Press Power when you see the fastboot screen, then press volume up when prompted on the device
12. Reboot into recovery, click apply: update.zip from /sdcard
13. Flash the rom of your chioce!

Your welcome

Thank NBetcher for this method!

 

iNode客户端“IP地址刷新超时”故障排除一例

八月 29th, 2011 487 次阅读 0 条评论

今天在用新买的联想小Y(Y570)在宿舍拨号上网的时候发现每次都可以连接并且认证通过,但是获取不到IP地址,等待很长时间之后出现“IP地址刷新超时”。从Log里面翻出来几个错误如下:

[2011-08-29 20:05:11] [Warn] [1768] rfrsh-ip(1): rfrsh failed with ErrNo 121.
[2011-08-29 20:05:34] [Warn] [1768] rfrsh-ip(1): rfrsh failed with ErrNo 1223.
[2011-08-29 20:07:35] [Warn] [1768] rfrsh-ip(1): rfrsh failed with ErrNo 121.
[2011-08-29 20:11:25] [Warn] [19e8] rfrsh-ip(1): rfrsh failed with ErrNo 121.
[2011-08-29 20:13:25] [Warn] [19e8] rfrsh-ip(1): rfrsh failed with ErrNo 121.
[2011-08-29 20:15:08] [Warn] [19e8] rfrsh-ip(1): rfrsh failed with ErrNo 1223.

在网上各种搜了半天,也没有查到任何结果。

后来发现用无线网卡连接本地的一个节点,然后用同样的802.1x连接可以正常获取到IP。这让我百思不得其解,难道说有线网卡有问题?按照网上有人给的解决方案,禁用/启用网卡,修改高级设置,全都不管用~

正在一筹莫展的时候,无意中发现系统服务中有这么一项:

Wired AutoConfig

"有线自动配置(DOT3SVC)服务负责对以太网接口执行 IEEE 802.1X 身份验证。如果当前有线网络部署强制执行 802.1X 身份验证,则应配置 DOT3SVC 服务运行以用于建立第 2 层连接性和/或用于提供对网络资源的访问权限。DOT3SVC 服务会影响到强制执行 802.1X 身份验证的有线网络。"

难道是这个东西在作怪?于是把它禁用掉。于是成功获取IP,但是后来第二次再用这种方法的时候就不管用了。

经过多日的摸索,终于!被我发现在系统还原到最初刚重装好的时候,是可以获取IP的。于是对比了一些系统中运行的服务,逐一尝试关闭之后,最后发现是Internet Connection Sharing(ICS)这个服务在作祟,于是禁用掉,从此再无问题。这个服务有可能是在使用联想笔记本自带的Intel myWifi之后自动打开的,在打开该服务以后,收不到DHCP Response,很是诡异。

 

2011黑帽大会:由黑客操控的世界[Zz]

八月 16th, 2011 364 次阅读 0 条评论

转自: cnBeta  地址: http://www.cnbeta.com/articles/151816.htm

7月30日至8月4日,一年一度的黑帽大会在拉斯维加斯召开。黑帽大会一直被公认为是信息安全领域的顶级盛会,在预测与描述未来信息安全形势的能力方面,它的权威性更是独一无二的。本届黑帽大会依旧没有让参与者与围观者失望,它再次汇聚了来自世界各地的企业、政府、学术界及“地下”信息安全组织的思 想领袖。在这个专业与技术水平极高的平台上,黑客们正在向人们展示操控世界的技术。

2011黑帽大会:由黑客操控的世界

你的房子可能被攻破

植物大战僵尸不仅仅是游戏,如今我们家庭中的网络就如同弱不禁风的植物,而屋外,很多僵尸正在游荡,并随时可能破门而入。研究员Dave Kennedy和Rob Simon 展示了他们如何利用公共电源线破坏并暗中监视一个住宅或办公室的自动化网络。他们研发了一种叫做X10的黑色外设,一旦其接入目标建筑附近的电源,就能通 过编程来堵塞信号,控制门与灯的开关、使安全系统失效、改变室内气候控制系统,并干扰家庭自动化网络中的其他功能。他们还展示了X10嗅探器设备,这个设 备能够通过运动传感器跟踪人,还可以清楚地看到其准备入侵的房间内部的情况。

黑客根本不用破门而入就能攻陷你的家。糖尿病和信息安全研究员Jay Radcliffe演示了一个利用网络攻击对糖尿病患者实施谋杀的可怕案例。攻击者利用强大的天线网络或者无线远程控制方法,就能对半公里之外的一个受害 者进行攻击控制胰岛素泵来实施谋杀,而发起攻击的密钥就是那些在产品外包装上明显标示的胰岛素泵的序列号。

在黑客高手所控制的世界中,人们已经完全没有安全可言。在黑帽大会上,有三位研究员展示了通过人脸识别以获得个人隐私的技术。当那些在 Facebook上传了真实照片的学生进入网络摄像头时,黑客就可以通过与Facebook上的照片比对认出他们,了解他们的兴趣爱好,甚至可以推算出他 的社会保险号码。

无处不在的漏洞

黑帽大会的影响力,还体现在会上所展示的各种网络技术漏洞,以及对操作系统和网络设备的全新攻击方式上。在大会上发言或参加竞赛的黑客高手,对各种操作系统和网络设备中的漏洞,可谓手到擒来,8月3日颁出的Pwnie奖,便是为了表彰黑客们一年的“挖洞”成果。

最佳服务器端漏洞:这类漏洞,包括任何不通过用户交互界面就可以实行远程控制的软件。漏洞示例:ASP.NET Framework Padding Oracle (CVE-2010-3332)。这是由于加密填充验证过程中处理错误不当而导致 ASP.NET 中存在一个信息披露漏洞。成功利用此漏洞的攻击者可以读取服务器加密的数据,篡改数据。虽然攻击者无法利用此漏洞来执行代码或直接提升用户权限,但可利用 漏洞产生信息,进一步危及系统的安全。在 Microsoft .NET Framework 3.5 Service Pack 1 及更高版本中,攻击者还可利用此漏洞检索ASP.NET 应用程序中任何文件(包括 web.config)的内容。

最佳客户端漏洞:客户端不仅仅是网页浏览器,媒体播放器整数溢出也会制造巨大的漏洞。漏洞示例:FreeType vulnerability in iOS (CVE-2011-0226)。FreeType 2.4.6之前版本的psaux/t1decode.c存在整数符号错误,允许远程攻击者通过一个PDF文档中的特制Type 1字体执行任意代码或者引起拒绝服务(内存破坏和应用程序崩溃),该漏洞曾在2011年7月被利用。

最佳提权漏洞:随着企业安全意识的不断加强以及越来越多地开始部署虚拟化系统,提权漏洞变得越来越重要。这些漏洞包括本地操作系统提权、避开操 作系统沙盒、虚拟机来宾账号突破等。漏洞示例:Windows kernel win32k user-mode callback vulnerabilities (MS11-034)。该漏洞导致Windows内核模式驱动程序允许特权提升。

本届黑帽大会的最具影响力失败奖颁给了索尼,最具影响力入侵奖颁给了stuxnet。这也显示出了一种趋势,具有巨大影响力和破坏力的攻击越来 越多地聚集在商业与工业网络中。黑帽大会所展示的不仅是黑客的攻击能力,也有安全与设备厂商防护及修补产品缺陷的安全能力,双方在“魔”与“道”的较量中 必将共同成长。

分类: 网络与安全 标签: BlackHat 

截至2011年5月TIOBE评选出的最受欢迎的编程语言

五月 22nd, 2011 540 次阅读 0 条评论

 

Position
May 2011
Position
May 2010
Delta in Position Programming Language Ratings
May 2011
Delta 
May 2010
Status
1 2 Java 18.160% +0.20%   A
2 1 C 16.170% -2.02%   A
3 3 C++ 9.146% -1.23%   A
4 6 C# 7.539% +2.76%   A
5 4 PHP 6.508% -2.57%   A
6 10 Objective-C 5.010% +2.65%   A
7 7 Python 4.583% +0.49%   A
8 5 (Visual) Basic 4.496% -1.16%   A
9 8 Perl 2.231% -1.05%   A
10 11 Ruby 1.421% -0.67%   A
11 12 JavaScript 1.394% -0.69%   A
12 20 Lua 1.102% +0.61%   A
13 9 Delphi 1.073% -1.49%   A
14 - Assembly 1.042% -   A
15 16 Lisp 0.953% +0.30%   A
16 23 Ada 0.747% +0.32%   A
17 15 Pascal 0.709% -0.02%   A
18 21 Transact-SQL 0.697% +0.21%   B
19 - Scheme 0.580% -   B
20 25 RPG (OS/400) 0.503% +0.09%   B

 

最近看ACM的Newsletter里面,JAVA的使用率貌似又上升了,看来搞Java和C才是王道。。。

分类: C/C++学习 标签:  

BackTrack 5 发布了!

五月 17th, 2011 439 次阅读 0 条评论

官方网站:

http://www.backtrack-linux.org/

宣传视频做的很赞!准备这两天下一个来玩玩。

分类: 网络与安全 标签: BackTrack 

使用 GDB 调试多进程程序[Zz]

五月 16th, 2011 520 次阅读 0 条评论

以下内容源自 IBM developerWorks

http://www.ibm.com/developerworks/cn/linux/l-cn-gdbmp/index.html

GDB 是 linux 系统上常用的 c/c++ 调试工具,功能十分强大。对于较为复杂的系统,比如多进程系统,如何使用 GDB 调试呢?考虑下面这个三进程系统:


进程
进程 

Proc2 是 Proc1 的子进程,Proc3 又是 Proc2 的子进程。如何使用 GDB 调试 proc2 或者 proc3 呢?

实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用GDB调试某个进程,如果该进程fork了子进程,GDB会继续调试该进程,子进程会不受干扰地运行下去。如果你事先在子进程代码里设定了断点,子进程会收到SIGTRAP信号并终止。那么该如何调试子进程呢?其实我们可以利用GDB的特点或者其他一些辅助手段来达到目的。此外,GDB 也在较新内核上加入一些多进程调试支持。

接下来我们详细介绍几种方法,分别是 follow-fork-mode 方法,attach 子进程方法和 GDB wrapper 方法。

follow-fork-mode

在2.5.60版Linux内核及以后,GDB对使用fork/vfork创建子进程的程序提供了follow-fork-mode选项来支持多进程调试。

follow-fork-mode的用法为:

set follow-fork-mode [parent|child]

  • parent: fork之后继续调试父进程,子进程不受影响。
  • child: fork之后调试子进程,父进程不受影响。

因此如果需要调试子进程,在启动gdb后:

(gdb) set follow-fork-mode child


并在子进程代码设置断点。

此外还有detach-on-fork参数,指示GDB在fork之后是否断开(detach)某个进程的调试,或者都交由GDB控制:

set detach-on-fork [on|off]

  • on: 断开调试follow-fork-mode指定的进程。
  • off: gdb将控制父进程和子进程。follow-fork-mode指定的进程将被调试,另一个进程置于暂停(suspended)状态。

注意,最好使用GDB 6.6或以上版本,如果你使用的是GDB6.4,就只有follow-fork-mode模式。

follow-fork-mode/detach-on-fork的使用还是比较简单的,但由于其系统内核/gdb版本限制,我们只能在符合要求的系统上才能使用。而且,由于follow-fork-mode的调试必然是从父进程开始的,对于fork多次,以至于出现孙进程或曾孙进程的系统,例如上图3进程系统,调试起来并不方便。

Attach子进程

众所周知,GDB有附着(attach)到正在运行的进程的功能,即attach <pid>命令。因此我们可以利用该命令attach到子进程然后进行调试。

例如我们要调试某个进程RIM_Oracle_Agent.9i,首先得到该进程的pid

[root@tivf09 tianq]# ps -ef|grep RIM_Oracle_Agent.9i
nobody    6722  6721  0 05:57 ?        00:00:00 RIM_Oracle_Agent.9i
root      7541 27816  0 06:10 pts/3    00:00:00 grep -i rim_oracle_agent.9i


通过pstree可以看到,这是一个三进程系统,oserv是RIM_Oracle_prog的父进程,RIM_Oracle_prog又是RIM_Oracle_Agent.9i的父进程。

[root@tivf09 root]# pstree -H 6722



通过 pstree 察看进程
通过 pstree 察看进程 

启动GDB,attach到该进程


用 GDB 连接进程
用 GDB 连接进程 

现在就可以调试了。一个新的问题是,子进程一直在运行,attach上去后都不知道运行到哪里了。有没有办法解决呢?

一个办法是,在要调试的子进程初始代码中,比如main函数开始处,加入一段特殊代码,使子进程在某个条件成立时便循环睡眠等待,attach到进程后在该代码段后设上断点,再把成立的条件取消,使代码可以继续执行下去。

至于这段代码所采用的条件,看你的偏好了。比如我们可以检查一个指定的环境变量的值,或者检查一个特定的文件存不存在。以文件为例,其形式可以如下:

void debug_wait(char *tag_file)
{
    while(1)
    {
        if (tag_file存在)
            睡眠一段时间;
        else
            break;
    }
}


当attach到进程后,在该段代码之后设上断点,再把该文件删除就OK了。当然你也可以采用其他的条件或形式,只要这个条件可以设置/检测即可。

Attach进程方法还是很方便的,它能够应付各种各样复杂的进程系统,比如孙子/曾孙进程,比如守护进程(daemon process),唯一需要的就是加入一小段代码。

分类: C/C++学习 Linux 标签: GDB