黑板客爬虫闯关第一关第二关

Posted ragd0ll

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑板客爬虫闯关第一关第二关相关的知识,希望对你有一定的参考价值。

上来先贴地址,刚入门的可以来van啊:

黑板客爬虫闯关

0x00 第一关


 打开网址,看到如下页面:

技术分享图片

先抱着试试看的心态在网址后面加上数字看看效果:

技术分享图片

 

怕不是个循环,获取网页中的数字不断加到url中,验证猜想,继续试一试:

?????

技术分享图片

 

那就把原来的数字换掉:

妙啊:

技术分享图片

这里基本确定思路,获取网页内的数字,然后在将数字加入url进行循环提交

查看源码,确定获取的信息<h3>标签内,并使用re库匹配我们要的数字

import requests
from bs4 import BeautifulSoup
import re

def gethtmlText(url):           
    try:
        r = requests.get(url, timeout = 30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ‘‘

def getNum(html):
    soup = BeautifulSoup(html, html.parser)
    h3 = soup.find(h3).text
    num = re.findall(rd{5},h3)[0]
    return num

def main():
    start_url = http://www.heibanke.com/lesson/crawler_ex00/
    num = 39642
    while num:
        url = start_url + str(num)
        html = getHTMLText(url)
        print(html)
        num = getNum(html)

main()

跑起来:

技术分享图片

 

0x01 第二关


技术分享图片

初步断定post两个参数,用for循环遍历30前的数字爆破密码

先抓个包,看看两个参数名叫啥

技术分享图片

import requests
from bs4 import BeautifulSoup

def getHTMLText(url, kv):
    try:
        r = requests.post(url, data= kv)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ‘‘

def getcontent(html):
    soup = BeautifulSoup(html, html.parser)
    h3 = soup.find(h3).text
    if not u密码错误 in h3:
        print(html)

def main():
    url = http://www.heibanke.com/lesson/crawler_ex01/
    for i in range(31):
        print(i)
        kv = {username: 1, password: i}
        html = getHTMLText(url, kv)
        getcontent(html)

main()

吼吼吼,成功辽

技术分享图片

 

以上是关于黑板客爬虫闯关第一关第二关的主要内容,如果未能解决你的问题,请参考以下文章

Python:黑板课爬虫闯关第一关

黑板客 -- 爬虫闯关 -- 关卡04

黑板客 -- 爬虫闯关 -- 关卡05

XSS闯关之第二关

Linux&bash闯关CTF

buuctf 刷题记录 [第二章 web进阶]XSS闯关