{"id":576,"date":"2014-07-13T16:10:44","date_gmt":"2014-07-13T16:10:44","guid":{"rendered":"http:\/\/ixyzero.com\/blog\/?p=576"},"modified":"2014-07-13T16:10:44","modified_gmt":"2014-07-13T16:10:44","slug":"%e6%8a%93%e5%8f%96wooyun%e4%b8%8a%e7%9a%84%e5%8e%82%e5%95%86%e5%88%97%e8%a1%a8","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/576.html","title":{"rendered":"\u6293\u53d6WooYun\u4e0a\u7684\u5382\u5546\u5217\u8868"},"content":{"rendered":"<p>\u4e4b\u524d\u5728\u522b\u4eba\u7684blog\u4e0a\u770b\u5230\u6293\u53d6WooYun\u4e0a\u7684\u5382\u5546\u5217\u8868\u4f5c\u4e3a\u4e00\u4e2a\u5382\u5546\u6570\u636e\u5e93\uff0c\u7136\u540e\u6bcf\u6bcf\u7b49\u5230\u6f0f\u6d1e\u7206\u53d1\u7684\u65f6\u5019\u6570\u636e\u5e93\uff08\u9700\u8981\u81ea\u5df1\u63d0\u524d\u505a\u4e00\u4e9b\u5904\u7406\uff0c\u5982\uff1aWeb\u5bb9\u5668\u5206\u7c7b\u3001\u540e\u7aef\u6570\u636e\u5e93\u5206\u7c7b\u2026\u2026\uff09\u5c31\u8d77\u4f5c\u7528\u4e86\uff0c\u5b9a\u5411\u6293\u53d6\u3001\u5b9a\u5411\u626b\u63cf\u5206\u6790\u3001\u5b9a\u5411\u51fb\u7834\u2026\u2026<\/p>\n<p>\u4e0d\u8fc7\u4eca\u5929\u8fd9\u91cc\u6211\u5c31\u653e\u4e00\u653e\u6293\u53d6\u5382\u5546\u5217\u8868\u7684Python\u4ee3\u7801\uff0c\u6bd4\u8f83\u7b80\u5355\uff0c\u6743\u5f53\u4f5c\u8bb0\u5f55&amp;\u5907\u4efd\u4e86\uff1a<\/p>\n<p>\u65b9\u6cd5\u4e00\uff1a\u5229\u7528sgmllib.SGMLParser<\/p>\n<pre class=\"lang:default decode:true \">#!\/usr\/bin\/env python\n#coding=utf-8\nimport urllib2\nimport sgmllib\nclass LinksParser(sgmllib.SGMLParser):\n\turls = []\n\tdef do_a(self, attrs):\t# the function's name do_a can't be changed\n\t\tfor name, value in attrs:\n\t\t\tif name == 'href' and value not in self.urls:\n\t\t\t\tif value.startswith('http'):\n\t\t\t\t\tself.urls.append(value)\n\t\t\t\t\tprint value\n\t\t\t\t\tfp.write(value + 'n')\n\t\t\telse:\n\t\t\t\tcontinue\n\t\t\treturn\n\ndef get_url(link):\n\tlParser = LinksParser()\n\tvalue = (urllib2.urlopen(link)).read()\n\tlParser.feed(value)\n\tlParser.close()\n\nif __name__ == \"__main__\":\n\tfp = open(\"URL.list\",'a')\n\tfor x in xrange(1, 29):\n\t\tget_url('http:\/\/wooyun.org\/corps\/page\/' + str(x))\n\tfp.close()<\/pre>\n<p>\u4e0d\u5f97\u4e0d\u8bf4Python\u7684\u4ee3\u7801\u77ed\u5c0f\u7cbe\u608d\u4e14\u529f\u80fd\u5b8c\u5907\uff0c\u800cPHP\u5c31\u65e0\u6cd5\u505a\u5230\u8fd9\u70b9\uff08\u4e5f\u53ef\u80fd\u53ea\u662f\u6211\u5199\u4e0d\u51fa\u77ed\u5c0f\u7cbe\u608d\u7684PHP\u4ee3\u7801\u800c\u5df2\u4e86o(\u256f\u25a1\u2570)o\uff09<\/p>\n<p>\u65b9\u6cd5\u4e8c\uff1a\u5229\u7528HTMLParser<\/p>\n<pre class=\"lang:default decode:true\">#!\/usr\/bin\/env python\n# coding=utf-8\nimport sys, urllib2, HTMLParser\n\nclass myparser(HTMLParser.HTMLParser):\n\turls = []\n\tdef __init__(self):\n\t\tHTMLParser.HTMLParser.__init__(self)\n\tdef handle_starttag(self, tag, attrs):\t# the name--\"handle_starttag\" can't be changed\n\t\tif (tag == 'a'):\n\t\t\tfor name,value in attrs:\n\t\t\t\tif (name == 'href' and value.startswith('http') and value not in self.urls):\n\t\t\t\t\tself.urls.append(value)\n\t\t\t\t\tprint value\n\t\t\t\t\tfp.write(value + 'n')\n\nif len(sys.argv)&gt;=2 and sys.argv[1] == '-u':\n\tcontent = (urllib2.urlopen(sys.argv[2])).read()\n\tfp = open(\"URL.list\",'a')\n\tcon = myparser()\n\tcon.feed(content)\n\tfp.close()\nelse:\n\tprint 'Usage: %s -u http:\/\/domain.com' % sys.argv[0]<\/pre>\n<p>\u8fd9\u4e2aHTMLParser\u7248\u672c\u7684\u53ea\u662f\u6293\u53d6\u5355\u4e2a\u7f51\u9875\u4e2d\u7684\u94fe\u63a5\u4fe1\u606f\uff08\u5176\u5b9e\u4e5f\u53ef\u4ee5\u591a\u6dfb\u52a0\u4e00\u4e24\u4e2a\u5224\u65ad\uff0c\u90fd\u53ef\u4ee5\u8d77\u5230\u6697\u94fe\u68c0\u6d4b\u7684\u529f\u80fd\u4e86\uff0c\u81ea\u5df1\u6539\u6539\u5c31\u6210\uff09\uff0c\u4e5f\u53ef\u4ee5\u6539\u5199\u6210\u4e0a\u9762\u90a3\u79cd\u6279\u91cf\u6293\u53d6\u81ea\u52a8\u5b58\u6587\u4ef6\u7684\u5f62\u5f0f\u3002<\/p>\n<p>\u7136\u540e\u518d\u901a\u8fc7\u4e00\u4e2ashell\u811a\u672c\u63d0\u53d6\u5176\u4e2d\u7684\u57df\u540d\uff0c\u65b9\u4fbf\u5176\u4ed6\u5de5\u5177\u7684\u4f7f\u7528\uff08\u5982\uff1a\u7528theHarvester\u8fdb\u884c\u4fe1\u606f\u641c\u96c6\uff09\uff1a<\/p>\n<pre class=\"lang:default decode:true \">#!\/bin\/bash\n\nfor i in `cat URL.list`;do\n\tsite=${i\/www.\/}\n\tsite=${site##http:\/\/}\n\tsite=${site%%\/*}\n\techo $site\n\tmkdir $site\n\t( cd $site &amp;&amp; python \/path\/to\/theHarvester.py -d $site -l 500 -b all -f $site.html )\n\tsleep 30\ndone<\/pre>\n<p>\u56e0\u4e3a\u6293\u53d6\u7684500\u591a\u4e2aURL\u91cc\u9762\u53ea\u67092\u4e2a\u662fhttps\u5f62\u5f0f\u7684\uff0c\u6240\u4ee5\u4e0a\u9762\u7684shell\u811a\u672c\u6ca1\u6709\u8003\u8651\u8fdb\u53bb\uff0c\u800c\u662f\u76f4\u63a5\u5c06https\u6539\u6210\u4e86http\uff08\u57df\u540d\u561b\uff0cHTTP\u548cHTTPS\u6ca1\u533a\u522b\uff0c\u6240\u4ee5\u6682\u65f6\u5c31\u4e0d\u8ba1\u8f83\u4e86\uff09\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e4b\u524d\u5728\u522b\u4eba\u7684blog\u4e0a\u770b\u5230\u6293\u53d6WooYun\u4e0a\u7684\u5382\u5546\u5217\u8868\u4f5c\u4e3a\u4e00\u4e2a\u5382\u5546\u6570\u636e\u5e93\uff0c\u7136\u540e\u6bcf\u6bcf\u7b49\u5230\u6f0f\u6d1e\u7206\u53d1\u7684\u65f6\u5019\u6570\u636e\u5e93\uff08\u9700 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,7,12],"tags":[8,65,222],"class_list":["post-576","post","type-post","status-publish","format-standard","hentry","category-linux","category-programing","category-tools","tag-python","tag-shell","tag-theharvester"],"views":3147,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=576"}],"version-history":[{"count":0,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/576\/revisions"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=576"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=576"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}