Skip to content

Python学习记录(九):乌云爬虫&数据 #10

@PyxYuYu

Description

@PyxYuYu

There are no shortcuts to any place worth going.

0x01 Wooyun

  • 网络设计缺陷/逻辑错误
    • 任意用户名注册导致注册系统503
      • 注册抓包,将包内用户名改成已经注册过的用户,即可注册成功,导致注册系统503
  • 任意文件遍历
  • 敏感信息泄漏
    • Django启用了debug模式导致敏感信息泄漏
      0x02 知道创宇爬虫题

  • 在挑战这道爬虫题之前还需要补充点其他知识,编写一点小工具
    • 爬取Wooyun并且存入数据库中
    • 爬取所有忽略的漏洞
    • 正则匹配寻找,更加简便的方法
      • BeautifulSoup().find_all(href=recompile(正则)) 找到的是一个符合正则的列表
    • BeautifulSoup模块获取指定tag内容的方法
      • tag.get_text() 可以获取tag包含的内容,比tag.string更优秀
      • tag.string只能获取tag有且仅有一个子节点,多个子节点,就无法获取了,返回None
    • 判断抓包中的HTML返回源码是否存在某个字符串
      • urllib2.urlopen().read()中是否包含某个字符串,可以用find方法
      • urllib2.urlopen().read().find(str) 存在返回位置,不存在返回 -1
      • BeautifulSoup模块不知道是否有,用find方法寻找时会因为网页编码问题报错
    • MySQL-Python安装,PycharmProject Interpreter无法安装,因为如果你安装的是64位的Python,这里提供的只有32位的,所以需要自己去寻找64位的MySQL-Python
    • 关于在网页中寻找特定的标签的两种方法:
# 方法一:先找<a>这个tag,找到后在找href,然后匹配
# for each in BeautifulSoup(url_res(vul_public),'html.parser', from_encoding='UTF-8').find_all('a'):
#     # print each['href']
#     # 判断一下是什么类型 unicode#     # print type(each['href'])
#     # /bugs/wooyun-2016-0176846 正则匹配
#     # 会有2个网址匹配出来,带个#就只能匹配出一个了
#     url_re = re.compile(r'/bugs/.*\d{6}#')
#     # 返回的是一个列表,没匹配到返回空列表
#     each_url = url_re.findall(each['href'])
#     if each_url != []:
#         # 每个列表只有一个元素
#         # vul_list.append(each_url[0])
#         print each_url[0]
#         # 寻找忽略漏洞
#         if get_vul(each_url[0]) > 0:
#             vul_detail(each_url[0])
#         else:
#             print "Didn't find."
#     else:
#         pass
# 方法二:更加简单,直接匹配了再找
for each in BeautifulSoup(url_res(vul_public), 'html.parser', from_encoding='UTF-8').find_all(href=re.compile(r'/bugs/.*\d{6}#')):
  print each['href']
    if get_vul(each['href']) > 0:
  vul_detail(each['href'])
    else:
  print "Didn't find."</pre>
0x03 一天总结

  • urllib2.urlopen().read()中是否包含某个字符串,可以用find方法
  • BeautifulSoup().find_all(href=recompile(正则)) 找到的是一个符合正则的列表
  • 关于Wooyun爬虫需要详细的分析需求和实现过程

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions