说来惭愧啊,花了两天时间才搞出来,确实有段时间没敲键盘了,经过 py中调用js,unescape()被忽略等bugs,其实现在想来也没什么,毕竟已经过去了。。。

import urllib2, re, string, PyV8, time#url="http://toolbar.netcraft.com/site_report?url=http://www.sucop.com"
def jsc(crstr):with PyV8.JSContext() as envl:envl.securityToken = "foo"envl.locals.prop = crstrenvl.eval('''var CryptoJS=CryptoJS||function(i,m){var p={},h=p.lib={},n=h.Base=function(){function a(){}return{extend:function(b){a.prototype=this;var c=new a;b&&c.mixIn(b);c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.$super.extend(this)}}}(),o=h.WordArray=n.extend({init:function(a,b){a=this.words=a||[];this.sigBytes=b!=m?b:4*a.length},toString:function(a){return(a||e).stringify(this)},concat:function(a){var b=this.words,c=a.words,d=this.sigBytes,a=a.sigBytes;this.clamp();if(d%4)for(var f=0;f<a;f++)b[d+f>>>2]|=(c[f>>>2]>>>24-8*(f%4)&255)<<24-8*((d+f)%4);else if(65535<c.length)for(f=0;f<a;f+=4)b[d+f>>>2]=c[f>>>2];else b.push.apply(b,c);this.sigBytes+=a;return this},clamp:function(){var a=this.words,b=this.sigBytes;a[b>>>2]&=4294967295<<32-8*(b%4);a.length=i.ceil(b/4)},clone:function(){var a=n.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var b=[],c=0;c<a;c+=4)b.push(4294967296*i.random()|0);return o.create(b,a)}}),q=p.enc={},e=q.Hex={stringify:function(a){for(var b=a.words,a=a.sigBytes,c=[],d=0;d<a;d++){var f=b[d>>>2]>>>24-8*(d%4)&255;c.push((f>>>4).toString(16));c.push((f&15).toString(16))}return c.join("")},parse:function(a){for(var b=a.length,c=[],d=0;d<b;d+=2)c[d>>>3]|=parseInt(a.substr(d,2),16)<<24-4*(d%8);return o.create(c,b/2)}},g=q.Latin1={stringify:function(a){for(var b=a.words,a=a.sigBytes,c=[],d=0;d<a;d++)c.push(String.fromCharCode(b[d>>>2]>>>24-8*(d%4)&255));return c.join("")},parse:function(a){for(var b=a.length,c=[],d=0;d<b;d++)c[d>>>2]|=(a.charCodeAt(d)&255)<<24-8*(d%4);return o.create(c,b)}},j=q.Utf8={stringify:function(a){try{return decodeURIComponent(escape(g.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return g.parse(unescape(encodeURIComponent(a)))}},k=h.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=o.create();this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=j.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var b=this._data,c=b.words,d=b.sigBytes,f=this.blockSize,e=d/(4*f),e=a?i.ceil(e):i.max((e|0)-this._minBufferSize,0),a=e*f,d=i.min(4*a,d);if(a){for(var g=0;g<a;g+=f)this._doProcessBlock(c,g);g=c.splice(0,a);b.sigBytes-=d}return o.create(g,d)},clone:function(){var a=n.clone.call(this);a._data=this._data.clone();return a},_minBufferSize:0});h.Hasher=k.extend({init:function(){this.reset()},reset:function(){k.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);this._doFinalize();return this._hash},clone:function(){var a=k.clone.call(this);a._hash=this._hash.clone();return a},blockSize:16,_createHelper:function(a){return function(b,c){return a.create(c).finalize(b)}},_createHmacHelper:function(a){return function(b,c){return l.HMAC.create(a,c).finalize(b)}}});var l=p.algo={};return p}(Math);(function(){var i=CryptoJS,m=i.lib,p=m.WordArray,m=m.Hasher,h=[],n=i.algo.SHA1=m.extend({_doReset:function(){this._hash=p.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(o,i){for(var e=this._hash.words,g=e[0],j=e[1],k=e[2],l=e[3],a=e[4],b=0;80>b;b++){if(16>b)h[b]=o[i+b]|0;else{var c=h[b-3]^h[b-8]^h[b-14]^h[b-16];h[b]=c<<1|c>>>31}c=(g<<5|g>>>27)+a+h[b];c=20>b?c+((j&k|~j&l)+1518500249):40>b?c+((j^k^l)+1859775393):60>b?c+((j&k|j&l|k&l)-1894007588):c+((j^k^l)-899497514);a=l;l=k;k=j<<30|j>>>2;j=g;g=c}e[0]=e[0]+g|0;e[1]=e[1]+j|0;e[2]=e[2]+k|0;e[3]=e[3]+l|0;e[4]=e[4]+a|0},_doFinalize:function(){var i=this._data,h=i.words,e=8*this._nDataBytes,g=8*i.sigBytes;h[g>>>5]|=128<<24-g%32;h[(g+64>>>9<<4)+15]=e;i.sigBytes=4*h.length;this._process()}});i.SHA1=m._createHelper(n);i.HmacSHA1=m._createHmacHelper(n)})();var response = CryptoJS.SHA1(unescape(prop));''')vars=envl.localsresponse=vars.responseresponse2=PyV8.JSObject.__str__(response)#response2=PyV8.convert(response)return response2def grab(url, localfile):headers={'GET':'site_report?url=http://www.uestc.edu.cn HTTP/1.1','Host':'toolbar.netcraft.com','User-Agent':'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0','Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Language':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3','Accept-Encoding':'gzip, deflate','Cookie':'__utma=207282326.130860318.1440300007.1440317156.1440386196.4; __utmz=207282326.1440300007.1.1.utmcsr=uptime.netcraft.com|utmccn=(referral)|utmcmd=referral|utmcct=/up/graph; __utma=126155282.1235327714.1440301396.1440301396.1440301396.1; __utmz=126155282.1440301396.1.1.utmcsr=toolbar.netcraft.com|utmccn=(referral)|utmcmd=referral|utmcct=/site_report','DNT':'1','Connection':'keep-alive','Cache-Control':'max-age=0'}req=urllib2.Request(url,headers=headers)respons=urllib2.urlopen(req)#print respons.read()#print respons.headers['Set-Cookie']cookie=respons.headers['Set-Cookie']diccook=cookie.split(';')temc=diccook[0].split('=')tem2c=temc[1]response2=jsc(tem2c)#print response2a=headers['Cookie'].split(';')a1=''.join(['netcraft_js_verification_challenge=',tem2c])a.append(a1)a2=''.join(['netcraft_js_verification_response=',response2])a.append(a2)headers['Cookie']=';'.join(a)#print headersreq3=urllib2.Request(url,headers=headers)time.sleep(6)respons3=urllib2.urlopen(req3)respons4=respons3.read()#print respons3.read()  p = re.findall('''<td width="37%"><a href=\'(.+?)\'>(.+?)</a></td>''',respons4)p2 = re.findall(r'''</td><td>((\d+)\.(\d+)\.(\d+)\.(\d+))</td><td>(.+?)</td><td>(.+?)</td><td>(.+?)</td>''',respons4)#print p2    myfile = open(localfile,'a')Site = p[0][1]Netblock_Owner = p[1][1]Domain = p[2][1]IP_address = p2[0][0]OS = p2[0][5]Web_server = p2[0][6]Last_seen = p2[0][7]myfile.write(Site)myfile.write('----')myfile.write(Netblock_Owner)myfile.write('----')myfile.write(Domain)myfile.write('----')myfile.write(OS)  myfile.write('----')myfile.write(Web_server) myfile.write('----')myfile.write(IP_address) myfile.write('----')myfile.write(Last_seen)    myfile.write('\n')myfile.close()time.sleep(4)
def main():#localfile = 'test.txt'grab(url,localfile)
if __name__=="__main__":main()
# -*- coding: cp936 -*-
from os import listdir
import timebb = __import__('1')
grab = bb.grabif True:tmp=listdir("./")print("[*] 请选择***目标列表文件ID..")for i in range(len(tmp)):print("[%s] %s"%(i,tmp[i]))print("[?] 列表:")lf = raw_input("")try:ii = int(lf)ff = tmp[ii]if len(lf)>0:flist = open("%s"%ff).readlines()for i in range(len(flist)):f = flist[i]f = f.strip("\n")#f = f.replace("http://","")print("[+] AUTO-FUCK::[%s/%s]::%s"%(i+1,len(flist),f))time.sleep(2)print("please wait a moment...")for i in range(len(flist)):u = flist[i]localfile = ''.join(['res-',ff])#print uuu = ''.join(['http://toolbar.netcraft.com/site_report?url=',u])print uugrab(uu, localfile)except Exception,e:print("[!] ERR:%s"%e)
else:print("[?] 比如:URL")

#####存数据库

#!/usr/local/bin/python
#-*- coding: UTF-8 -*-import sys
import MySQLdbconn = MySQLdb.connect('localhost', 'root', 'toor', 'Exploitsites');
cur = conn.cursor()
def bl(Site,Netblock_Owner,Domain,OS,Web_server,IP_address,Last_seen):try:with conn:cur.execute("CREATE TABLE IF NOT EXISTS \Wooyun(Id INT PRIMARY KEY AUTO_INCREMENT, Site VARCHAR(30),Netblock_Owner VARCHAR(90),Domain VARCHAR(20),OS VARCHAR(40),Web_server VARCHAR(130),IP_address VARCHAR(20),Last_seen VARCHAR(20))")cur.execute("INSERT INTO Wooyun(Site,Netblock_Owner,Domain,OS,Web_server,IP_address,Last_seen) VALUES(%s,%s,%s,%s,%s,%s,%s)",(Site,Netblock_Owner,Domain,OS,Web_server,IP_address,Last_seen))conn.commit()except:print 'save false'
bb = __import__('ip')
bl = bb.blfor i in range(1,7):fi = 'res-f4-'+str(i)+'.txt'flist = open(fi).readlines()for i in range(len(flist)):f = flist[i]ff = f.split('----')Site = ff[0]Netblock_Owner = ff[1]Domain = ff[2]OS = ff[3]Web_server = ff[4]IP_address = ff[5]Last_seen = ff[6].strip()#print(Site,Netblock_Owner,Domain,OS,Web_server,IP_address,Last_seen)bl(Site,Netblock_Owner,Domain,OS,Web_server,IP_address,Last_seen)

######加个简单的测试

import MySQLdb
import sysconn = MySQLdb.connect('localhost', 'root', 'toor', 'Exploitsites');
cur = conn.cursor()with conn:cur.execute("SELECT * FROM Wooyun")rows = cur.fetchall()print len(rows)#for row in rows:#print row

至此,大致想要实现的功能都差不多了,待终。。。

转载于:https://blog.51cto.com/maxvision/1687821

计划doing.....相关推荐

  1. 2017 年总结及 2018 年计划

    概述 本文写于 2018.01.01,计划从 2017 开始有目的的进行复盘行动,所以将该文搬运到此处. ----------------------------分界线---------------- ...

  2. Waymo的激光雷达计划:进展如何?

    Waymo的激光雷达计划:进展如何? Waymo's Lidar Plan: How's It Working out? 许多自动驾驶汽车(AV)开发商一直在热烈追求激光雷达技术,这一技术之所以重要, ...

  3. (14)某工业生产部门根据国家计划的安排, 拟将某种高效率的5台机器,分配给所属的3个工厂A,B,C,各工厂在获得这种机器后,可以为国家盈利的情况如表4-10所示。

    问题描述: (14)某工业生产部门根据国家计划的安排, 拟将某种高效率的5台机器,分配给所属的3个工厂A,B,C,各工厂在获得这种机器后,可以为国家盈利的情况如表4-10所示.问:这5台机器如何分配给 ...

  4. 当统计信息不准确时,CBO可能产生错误的执行计划,并在10053 trace中找到CBO出错的位置示例...

    一.本文说明: 操作系统:rhel 5.4 x32 数据库:oracle 11g r2 x32 二.实验内容: ----创建一张jack表,并创建索引jack_ind---- 1 SQL> cr ...

  5. 2017暑期挖坑计划(持续更新中~)

    2017的暑期,是高中生涯唯一一个能称得上暑期的东西了,也是决定我OI这个坑能挖多大的关键时期! 嗯,这个暑期不能颓,一定要好好挖坑,好好补题! 既然入了坑,就努力把坑挖穿再出来! 2017.11.6 ...

  6. cron 工具 每分钟_计划任务 cron和crontab

    很多时候,我们需要定时执行某个应用或者某段脚本,在linux上,可以使用cron服务,它有点类似于Windows上的任务计划程序.这篇文章将简单介绍cron的使用. 1. crond和crontab ...

  7. linux 任务计划 权限设置,Linux系统 文件权限+计划任务+日志系统

    实验目的:熟练掌握权限相关概念和具体操作 实验环境:Red Hat Enterprise Linux Server 5.3 实验步骤: 一.文件权限 二.计划任务 三.日志 一.文件权限 (一)基本权 ...

  8. 计划任务执行php文件,linux系统下添加计划任务执行php文件方法

    在web开发过程中,经常需要设定一些定期执行的任务,比如商品定时上下架.我们以php文件为例,讲解linux下的计划任务. 方法/步骤 1.打开linux系统命令行界面. 在命令行界面中输入如下命令: ...

  9. android 高通平台有前途吗,华为鸿蒙计划要适配高通平台了,可以告别安卓搭载鸿蒙OS了?...

    鸿蒙走出这一步是可以想象到的,看来华为打造这个系统希望的结果是万物皆可盘呀,所以一开始就提出了开源,也就意味着这次是高通,下次就可以是联发科,甚至更多的手机品牌也完全就可以搭载!早期我们一直在说国产手 ...

  10. python打印万年历_python青苔计划(六)打印万年历

    青苔计划 /(ㄒoㄒ)/~~ 我这样的小白 万年历打完,感觉身体被掏空 请给我暖暖的拥抱 ╮(╯╰)╭ ----------正经的分割线---------- 任务要求 刚看到要打印万年历,我彻底懵逼了 ...

最新文章

  1. 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
  2. 工业互联网 — 5G 边缘计算与 IIoT
  3. CentOS7 扩容 / 目录
  4. ASP.NET 网站路径[转载]
  5. 矩阵分析与多元统计1 线性空间与线性变换1
  6. python怎么看内置模块_Python的内置模块详解
  7. java小程序查看器,成功拿到offer
  8. RabbitMQ学习总结(1)——基础概念详细介绍
  9. Python实现爬取豆瓣电影|python豆瓣全栈爬虫:电影系列全爬虫系统1.0:(信息,短评,影评,海报)|你想爬的都有
  10. matlab 平行,MATLAB判断两条直线平行
  11. R+python︱XGBoost极端梯度上升以及forecastxgb(预测)+xgboost(回归)双案例解读
  12. java安装包_Java6 Update
  13. 安卓10不支持qmc解码_国产定制ROM玩烂了的功能,最新安卓11原生系统确定不支持...
  14. 如何看待国内开源现状?贾扬清、李沐、陈天奇等大牛如是说
  15. 《游戏设计艺术(第2版)》——学习笔记(13)第13章 游戏机制必须平衡
  16. java在线截图_JAVA之网页截屏
  17. 漫谈直播:从零开始认识直播并快速搭建专属直播平台
  18. 鸿蒙os跑分,预装鸿蒙OS 2.0!华为MatePad Pro2跑分曝光:麒麟9000、8GB内存
  19. 瑞萨单片机-硬件I2C从设备
  20. win11照片一打开就是打印怎么办?

热门文章

  1. windows--bat--删除当前脚本del %0
  2. 大数据之-Hadoop伪分布式_配置历史服务器---大数据之hadoop工作笔记0027
  3. axios_的基本使用_使用axios()方法来发送请求---axios工作笔记004
  4. 工作资讯004---多范式编程语言
  5. ASP.Net学习笔记006--Get和Post的区别
  6. DOTNET零碎要点---vb.net获取combox的选中值,删除Datagridview,选中值,处理提示框...
  7. 昨天晚上的总结--人跟人的区别在于想的多少吧
  8. opencv打开的图片应用于nn.Conv2d()(一)(H, W, C)转为 (C, H, W)
  9. CString、char*之间的相互转换
  10. 计算机二级access上机题,计算机二级ACCESS上机题库