分类目录归档:技术

熟能生巧,勤能补拙。

一个合并bib文件的小工具

因为当写过两篇文章之后,偶尔来个汇报之类的,就需要将之前文章的参考文献汇集在一起处理。然而这些文献本身可能是大量重复的,如何将多个bib文件中的重复文献去掉,仅保留不重复的部分,并最终输出到一个合并之后的bib文件中,是写这个小工具的一个背景。

原来的bib文件已经有自己的citation key,而且自己也习惯于这样的生成方式。虽然有一些文献管理软件也有此功能,但有如下弊端:

1)基于title来去重,而不是citation key去重;
2)bib文件中的其他非文献信息会被清除掉;
3)导出后原来的citation key无法保持原样

考虑到以上因素,所以就写了这个小工具:https://github.com/tpu01yzx/BibtexParser

这个工具的用法很简单,主要是几个参数:

1) -O –output 设置合并后输出到的文件名,缺省是标准输出设备。
2) –onlyregular 是否只输出Reguler(类似article,book,misc之类表示具体的文献记录,而非辅助信息如comment, string)的记录,默认为否。
3) –outputplain 是否输出非@开头的记录,这类块大部分是注释或者用于格式控制的,默认为否。

当然了,仅有这个工具,用起来还是有点麻烦,所以最后送上一个Bat批处理文件,把这个批处理文件,bib合并小工具,以及要合并的所有bib文件放在同一个目录。执行这个批处理文件,就不用每次都去找命令行,对于大部分习惯了Windows的用户来说应该是件好事。

@echo off
SetLocal EnableDelayedExpansion

set allbib=_all.bib
set exec=bib_combiner.exe

echo @comment{this file is generated by BibtexParser.exe} > %allbib%
set list=
for  %%i in (*.bib) do ( 
	if not "%%i" == "%allbib%" (		
		set list=!list! "%%i"
	)
)
%exec% "%allbib%" %list% -O "%allbib%" -R
%exec% --help
set exec=
set allbib=
set list=
pause

给伸手党准备好了,Windows下的打包(包含上面提到的一个工具和一个批处理文件:bib_combiner.exe和一个run.bat),点击这里下载

VPN拨号后自动处理路由策略(For Windows)

经常使用各种不同的VPN,但一般客户端都需要根据不同的场景来选择配置不同的路由策略,很久之前写过一个批处理脚本(For Win)。今天突然要用,但是找不到了,所以只好重新再写一次,然后保存下来,希望下次会记得。

PS:Linux类系统下自然有更多优秀的解决方案,或者说第三方VPN插件自然也会很优雅的解决办法,自然不必纠结我这个批处理的脚本,只给有需要的人。

@echo off
Setlocal enabledelayedexpansion
rem 校内常见的私有地址,例如教务系统,OA办公系统等
set ip0=10.0.0.0/8;
set prefix=10.0.0.
rem =====================以上部分不要修改===========================================

rem 所有需要通过VPN访问的IP,用分号隔开。支持添加整个子网。最多添加到ip3,并且每个都要以分号结尾
set ip1=211.155.94.138;122.115.55.6;
set ip2=
set ip3=

rem 用户名user
set user=XXX

rem 密码pass
set pass=XXX

rem 新建vpn连接的名称,可以在"控制面板"的"网络连接"中看到
set vpn_name=gdst

rem =====================以下部分不要修改=================================
set ip4=172.16.0.0/16
set ipt="%ip0% %ip1% %ip2% %ip3% %ip4%"
set "ips=%ipt: =%"
set try=0
set mask=
set aip=
set ans=
set ip=

:dial
cls
echo 正在VPN连接...
rasdial %vpn_name% %user% %pass%
if errorlevel 1 (
set /a try+=1
echo 第%try%次拨号失败,5秒后重新尝试,按Ctrl+C终止
ping 1.1.1.1 -n 1 -w 5000 > nul
goto dial
) else (
echo 拨号成功.
)
rem VPN获取的IP地址应该是10.0.0开头的

for /f "tokens=1* delims=:" %%i in ('ipconfig /all^|find "%prefix%"') do (
if /i not "%%j" == "" (
set ip=%%j
goto ipout
)
)
:ipout
echo VPN的IP地址为:%ip%
echo 正在处理网络配置,如果失败,请修复本地连接后重新尝试。
rem 删除拨号成功后默认添加的路由
rem route delete 0.0.0.0 mask 0.0.0.0 %ip% METRIC 1 >NUL 2>NUL
call:clean
call:add_all %ips%
echo 网络配置完毕。

:menu
rem cls
rem echo 当前路由表为(仅供调试之用)
rem route print %prefix%
set /p user_input=输入1,将自动断开vpn,并恢复原来的网络配置。
if /i not "%user_input%"=="1" goto menu

rasdial %vpn_name% /DISCONNECT
call:clean
echo 操作完毕,请关闭此窗口。
pause
exit

:gmask
set /a nid=32
set /a q=4
set /a r=0
set aip=%~1
set "aip=%aip: =%"
if "!aip!" == "" goto:eof
for /f "delims=/, tokens=1,*" %%s in ("%~1") do (
if /i not "%%t"=="" (
set /a q="%%t/8"
set /a nid="%%t"
set aip=%%s
)
)

set /a r="%nid%-%q%*8"
if %nid% GEQ 32 (
set mask=255.255.255.255.
) else if %nid% LEQ 0 (
set mask=0.0.0.0.
) else (
set mask=
for /L %%i in (1,1,%q%) do (
set mask=!mask!255.
)
set /a next="%q%+1"
if %r% GTR 0 (
set /a smask=1"<<"%r% set /a smask=256-!smask! set mask=!mask!!smask!. ) for /L %%i in (!next!,1,4) do ( set mask=!%mask!0. ) ) set "mask=%mask:~0,-1%" goto:eof :add_all for /f "delims=;, tokens=1,*" %%i in ("%~1") do ( call:gmask "%%i" echo 正在处理 %%i !aip! !mask! %ip% if /i not "!aip!" == "" ( route add !aip! mask !mask! %ip% METRIC 1 >NUL 2>NUL
)
if /i not "%%j"=="" (
call:add_all "%%j"
)

)
goto:eof

:clean
for /f "tokens=1-4" %%i in ('route print ^| find "!ip!"') do (
route delete %%i mask %%j !ip! >NUL 2>NUL
)
goto:eof

执行后显示的日志信息如下:

正在VPN连接…
正在连接到 GDST…
正在验证用户名及密码…
正在网络上注册您的计算机…
已连接 GDST。
命令已完成。
拨号成功.
VPN的IP地址为: 10.0.0.4
正在处理网络配置,如果失败,请修复本地连接后重新尝试。
正在处理 10.0.0.0/8 10.0.0.0 255.0.0.0 10.0.0.4
正在处理 211.155.94.138 211.155.94.138 255.255.255.255 10.0.0.4
正在处理 122.115.55.6 122.115.55.6 255.255.255.255 10.0.0.4
正在处理 172.16.0.0/16 172.16.0.0 255.255.0.0 10.0.0.4
网络配置完毕。
输入1,将自动断开vpn,并恢复原来的网络配置。1
命令已完成。
操作完毕,请关闭此窗口。
请按任意键继续. . .

[转]中国很多网上银行客户数字证书配置不当

漏洞概要

缺陷编号: WooYun-2012-09482

漏洞标题: 中国很多网上银行客户数字证书配置不当

相关厂商: 中国很多银行&支付宝

漏洞作者: tpu01yzx

提交时间: 2012-07-13 15:14

公开时间: 2012-07-16 01:46

漏洞类型: 默认配置不当

危害等级: 低

自评Rank: 1

漏洞状态: 已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org

Tags标签: 设计不当导致攻击界面扩大 盲目信任用户数据 杀毒绕过 网络资源滥用 证书签发策略错误


漏洞详情

披露状态:

2012-07-13: 细节已通知厂商并且等待厂商处理中
2012-07-13: 厂商已查看当前漏洞内容,细节仅向厂商公开
2012-07-16: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

就是可以使用网上银行和支付宝签发给用户进行身份验证的数字证书进行代码签名。

会有什么危害呢?看那个“数字签名正常”几个字就知道了。除了可以通过浏览器控件的签名验证之外,还可以逃避一下杀毒软件的查杀(目前很多杀软都是忽略“可信任”的软件白名单)

详细说明:

第一张使用的是农业银行发布的数字证书做的code签名

第二张使用的是支付宝发布的数字证书做的code签名

他们对应的根证书自己到官网下载安装,不解释。至于如何做code签名,微软有个signcode.exe,也不解释了。

会有什么危害呢?看那个“数字签名正常”几个字就知道了。除了可以通过浏览器控件的签名验证之外,还可以逃避一下杀毒软件的查杀(目前很多杀软都是忽略“可信任”的软件白名单)

漏洞证明:

第一张使用的是农业银行发布的数字证书做的code签名

第二张使用的是支付宝发布的数字证书做的code签名

修复方案:

别自以为是地自己给自己签名做CA,买个第三方认证的证书不需要花多少钱吧。怕国外的不安全,国内的也有权威的数字认证机构啊,不解释。

或者

给用户签发数字证书的时候,那个“证书的目的”控制一下,比如说:

客户端验证

安全电子邮件

智能卡登录

而不要用默认那个”所有应用程序策略”,不解释哈。

版权声明:转载请注明来源 tpu01yzx@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2012-07-16 01:46

厂商回复:

参考评论,对于此类问题暂不进行处置。

漏洞Rank:13 (WooYun评价)

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

[转]腾讯将乌云列入黑名单

漏洞概要

缺陷编号: WooYun-2011-03899

漏洞标题: 腾讯将乌云列入黑名单

相关厂商: 腾讯

漏洞作者: tpu01yzx

提交时间: 2011-12-29 15:52

公开时间: 2012-01-03 15:53

漏洞类型: 设计错误/逻辑缺陷

危害等级: 低

自评Rank: 5

漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org

Tags标签: 潜规则


漏洞详情

披露状态:

2011-12-29: 细节已通知厂商并且等待厂商处理中
2011-12-29: 厂商已查看当前漏洞内容,细节仅向厂商公开
2012-01-03: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

腾讯将乌云列入黑名单,导致用户无法及时获得最新的漏洞信息。
<img src=”/upload/201112/29155031c26f97276a1628875e231bd9ad07b4ef.jpg” />

详细说明:

看图,不解释。

漏洞证明:

看图,不解释。

修复方案:

你懂的。

版权声明:转载请注明来源 tpu01yzx@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2012-01-03 15:53

厂商回复:

漏洞Rank:3 (WooYun评价)

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

[转]QQ被迫下线后未使会话令牌失效

漏洞概要

缺陷编号: WooYun-2011-03679

漏洞标题: QQ被迫下线后未使会话令牌失效

相关厂商: 腾讯

漏洞作者: tpu01yzx

提交时间: 2011-12-20 09:31

公开时间: 2012-02-03 09:32

漏洞类型: 非授权访问/认证绕过

危害等级: 低

自评Rank: 1

漏洞状态: 厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org

Tags标签: 认证设计不合理 腾讯认证 认证绕过 用户认证信息泄漏 认证系统设计不合理 认证信息不同步


漏洞详情

披露状态:

2011-12-20: 细节已通知厂商并且等待厂商处理中
2011-12-20: 厂商已经确认,细节仅向厂商公开
2011-12-23: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2012-02-13: 细节向核心白帽子及相关领域专家公开
2012-02-23: 细节向普通白帽子公开
2012-03-04: 细节向实习白帽子公开
2012-02-03: 细节向公众公开

简要描述:

很简单,就是一个地方登陆了QQ,另一个地方再登陆的时候就会导致前面的登陆出现被迫下线的情况。但此时,虽然客户端的QQ是离线状态,但是通过点击QQ客户端控制面板上的按钮还是可以正常访问QQ空间,QQ邮箱等信息。这个和那种会话劫持的原理很类似。
于是有如下猜想:只有一次登陆成功,记录下会话信息,即使之后执行退出操作,仍可以使用之前的会话信息通过认证。

详细说明:

按照问题描述操作一次。

漏洞证明:

省略。

修复方案:

你懂的。

版权声明:转载请注明来源 tpu01yzx@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:1

确认时间:2011-12-20 11:14

厂商回复:

thanks

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

 

[转]QQ2011会话密钥泄漏

漏洞概要

缺陷编号: WooYun-2011-02953

漏洞标题: QQ2011会话密钥泄漏

相关厂商: 腾讯

漏洞作者: tpu01yzx

提交时间: 2011-10-08 22:58

公开时间: 2011-11-07 22:59

漏洞类型: 未授权访问/权限绕过

危害等级: 高

自评Rank: 15

漏洞状态: 厂商已经确认

漏洞来源: http://www.wooyun.org

Tags标签: 加密算法设计错误


漏洞详情

披露状态:

2011-10-08: 细节已通知厂商并且等待厂商处理中
2011-10-09: 厂商已经确认,细节仅向厂商公开
2011-10-19: 细节向核心白帽子及相关领域专家公开
2011-10-29: 细节向普通白帽子公开
2011-11-08: 细节向实习白帽子公开
2011-11-07: 细节向公众公开

简要描述:

win版本的QQ客户端(包括QQ2010,QQ2011等版本),在一个与会话密钥相关的临时密钥生成中使用了不安全的随机密钥生成算法,导致攻击者可以通过监听用户登录得到其中的会话密钥,进而可以添加修改查看所有的聊天记录。

详细说明:

http://kns.cnki.net/KCMS/detail/detail.aspx?filename=xxaq201106038&dbname=CJFD&dbcode=CJFQ

看这篇文章。

目前对于linux版本的QQ免疫。对于某些win用户来说也是免疫的,暂时还不清楚具体适用范围。实验采用了即时通过网页申请的5个新QQ号码。还没做更进一步的验证。

漏洞证明:

已经在win和rg100a(一款路由器)上实现了该改进过的算法。可以在路由器上记录通过该路由上网的QQ的聊天记录。这个怎么证明?代码写得很烂,不献丑了,就按照文章中的流程做就好了。有需要的可以联系索取。

修复方案:

版权声明:转载请注明来源 tpu01yzx@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2011-10-09 17:42

厂商回复:

thanks

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

[转]绕过锁定QQ功能进入(QQ空间等)网站

漏洞概要

缺陷编号: WooYun-2011-02700

漏洞标题: 绕过锁定QQ功能进入(QQ空间等)网站

相关厂商: 腾讯

漏洞作者: tpu01yzx

提交时间: 2011-08-22 12:54

公开时间: 2011-09-21 12:54

漏洞类型: 设计缺陷/逻辑错误

危害等级: 低

自评Rank: 2

漏洞状态: 厂商已经确认

漏洞来源: http://www.wooyun.org

Tags标签: 边界绕过 认证缺陷 认证设计不合


漏洞详情

披露状态:

2011-08-22: 细节已通知厂商并且等待厂商处理中
2011-08-23: 厂商已经确认,细节仅向厂商公开
2011-09-02: 细节向核心白帽子及相关领域专家公开
2011-09-12: 细节向普通白帽子公开
2011-09-22: 细节向实习白帽子公开
2011-09-21: 细节向公众公开

简要描述:

http://www.wooyun.org/bugs/wooyun-2010-02538
跟这个描述差不多,还没有修复好。
不好意思,引用到了“笨猫猫”的很多话。

详细说明:

点击锁定后的“反馈问题”按钮

虽然在打开的页面中已经处理掉了连接,还是可以通过直接输入网站地址访问其他腾讯的子网站,其中包括财付通,id.qq.com等,这些网站至少帐号的财务信息,好友信息等。

漏洞证明:

笨猫猫:不知道该怎么证明漏洞。。要不你们来我电脑挂QQ并锁定好了。。

修复方案:

笨猫猫:亲~你懂得

版权声明:转载请注明来源 tpu01yzx@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:3

确认时间:2011-08-23 08:49

厂商回复:

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

我和乌云

去年听说乌云( http://www.wooyun.com )关停了,一直到现在还是这个状态。现在有两个网站收录了一些乌云关停前的漏洞:http://cb.drops.wiki 以及 https://wooyun.shuimugan.com 最起码还能看到一些东西。当年,大概是2011年,上课老师讲过XSS攻击之后,我就折腾了半年,提交了一些漏洞,然后顺带写了篇论文。毕竟是曾经做过了一些事情,怕时间久远之后自己会忘记,故收录之。

 

其中有两个漏洞,我觉得有必要单独拿出来讲一下,一个是“腾讯将乌云列入黑名单”(http://cb.drops.wiki/bugs/wooyun-2011-03899.html ),另一个是”QQ2011会话密钥泄漏”(http://cb.drops.wiki/bugs/wooyun-2011-02953.html )。先说第一个,重点看评论,这也算是折射出了国内互联网安全之现状吧。特别是大量的中小企业,安全对于他们来说是一种累赘。钱花了,却看不到实际的效果。而大企业,则逐渐重视起来了,这当然是好事。再说第二个,与自己专业学习相结合的一个成果吧。数学在其中所起的作用是核心的。安全的核心,就是纯粹的数学问题。

 

最后,将收录自己提交过的漏洞。