[转]Blackhat历年paper整理


原文链接http://www.blackh4t.org/archives/911.html

Blackhat历年paper的汇总页面

附上下载脚本(从当前目录中的txt文件中读取资源的下载URL信息然后使用wget进行下载,并分别放到各个目录中):
# By notsobad <—– thx this dude

for i in *.txt;do mkdir ${i%.txt} ; ( cd ${i%.txt} && wget -i ../$i --no-check-certificate ); done

转个Pyhton下载脚本的文章

  1. 首先,去汇总页面,使用Python脚本获取其中所有paper的链接信息存入一文本文件中(这个其实也可以分为:1.从汇总页面获取每一年演讲的链接;2.从每一年的链接中获取所有paper的链接信息);
  2. 然后,将汇总出的所有txt文件放入一个目录中,执行上面的那个shell脚本,即可进行批量下载。
获取paper下载链接的Python脚本如下:
#!/usr/bin/env python
# coding=utf-8
#-------author:Scr@t-------
#----filename:spider.py----

import sys
import urllib2
import re
import HTMLParser

class myparser(HTMLParser.HTMLParser):
	def __init__(self):
		HTMLParser.HTMLParser.__init__(self)
	def handle_starttag(self,tag,attrs):
		if (tag == 'a'):
			URL = ''
		for name,value in attrs:
			if (name == 'href'):
				for xx in ['pdf','ppt','pptx','zip','rar']:
					val = value.find(xx)#所要下载的文件类型
					if val != -1:
						fp.write(value + 'n')

if len(sys.argv)>=2 and sys.argv[1] == '-u':
	content = (urllib2.urlopen(sys.argv[2])).read()#打开网址并读取内容
	fp = open("URL.list",'w')
	con = myparser()
	con.feed(content)#把content的内容,传给myparser分析
else:
	print 'Usage:%s -u url'%sys.argv[0]

稍微改了下脚本使其能够更好运行。

========

对那个批量下载的shell命令组合做个解释:

for i in *.txt;do mkdir ${i%.txt} ; ( cd ${i%.txt} && wget -i ../$i --no-check-certificate ); done
#上面的这一句话起到的作用是,遍历当前目录下所有的txt文件,根据txt文件名创建同名文件夹,然后根据各txt文件内容中指定的URL下载相应资源

#细分每个命令的作用如下
for i in *.txt;do
	mkdir ${i%.txt};	#取txt文件名来创建目录
	( cd ${i%.txt} && wget -i ../$i --no-check-certificate );	#切换到对应目录并使用wget进行下载(-i选项指定从本地/外部文件中读取URL信息,另一个选项指定不进行检查)
done

 


《“[转]Blackhat历年paper整理”》 有 16 条评论

    • 你好,可能我的结构没有组织好,误导了你:
      如果直接用上面的Python脚本的话,最后得到的应该是一个URL.list文件,里面是资源的链接(第26行给文件取的名字);
      另外一个shell脚本其实是用来方便下载的(txt文件内容为资源链接)还没有整合到一起。
      所以,如果已经得到了URL.list文件,直接使用命令:wget -i URL.list 即可批量下载。

      • 了解。确实理解错了。十分感谢。
        刚刚开始用Python做爬虫,正巧我也在搜索黑帽大会的资料,谢谢你的文章,另外,你的博客很不错,我就没有坚持下来。

      • 另外有个搜集安全会议的网站的wiki推荐,www.secdocs.org

          • 好的。不客气。也十分感谢你。我尝试一下

          • 嗯,下载了一个2014年的,如果我只想要URL.list列出信息,如何能够让其输出的格式整齐呢?是使用正则表达式么?(不知道对不对)

          • 没懂你的意思,直接用脚本获取的URL.list文件内容格式如下:
            ../docs/us-14/materials/us-14-Saxe.pdf
            ../docs/us-14/materials/us-14-Saxe-Tool.zip
            你可以查看该页面的源代码知道有对应的:
            …… href=”../docs/us-14/materials/us-14-Saxe.pdf” ……
            然后你对sys.argv[2]和匹配出的value进行字符串/列表切片处理之后,拼接即可获取完整/整齐的URL地址了。本文中使用的是HTMLParser获取URL,你也可以用正则的方式,但效果基本相同。
            我要出门一趟,无法及时回复,你自己多试试吧,该说的我认为都说的差不多了,实际动手的话印象会深刻些。

      • 第26行是 fp = open(“URL.list”,’w’)这里么,请问如何修改呢?

        • 按照方法做了,为什么产生的URL.list文件是0字节的呢?
          是哪里出错了么?

          • 因为在http://www.blackhat.com/html/archives.html 这个页面里面并没有资源的下载地址,这个页面相当于是个导航页面,比如说你要下载USA 2014年大会上的资源,你可以进入 http://www.blackhat.com/us-14/archives.html 页面,然后再运行的话URL.list文件中的内容大致如下:
            ../docs/us-14/materials/us-14-Valtman-A-Journey-To-Protect-Point-Of-Sale.pdf
            ../docs/us-14/materials/us-14-Brodie-A-Practical-Attack-Against-VDI-Solutions-WP.pdf
            ……
            因为该页面使用的是相对地址,不过你可以在Python脚本中修改or对已经生成的URL.list文件进行修改,然后再用wget下载即可。

  1. BlackHat USA 2020 资料爬虫最佳姿势与打包下载
    https://mp.weixin.qq.com/s/UvTsh2GdytglxzB3mCWdzA
    `
    现在BlackHat官网的ppt下载真是麻烦,不再像以前放在一页里面直接显示,而是在议题列表里面,一个个点进去翻看才能下载。

    这种事真要一个个去下载,近百个议题,你得下到手软。
    不搞个爬虫去自动化下载,都对不起攻城师的头衔。

    原本是想用scrapy写个python脚本去批量下载,后来决定用更加高效的方法:使用Web Scraper这个Chrome插件,通过点鼠标就可解决,无需编写代码。可直接在浏览器里面模拟网页浏览与操作,可以有效绕过一些反爬虫机制。

    将爬虫结果导出csv,用命令行批量下载就可以了。
    `
    https://github.com/riusksk/SecConArchive/tree/master/BlackHat/BlackHat_USA_2020

回复 wangkaka 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注