PHP实现的网站目录扫描索引工具


Posted in PHP onSeptember 08, 2016

代码很简单,这里就不多废话了,本代码来至一位网友的投稿,经测试可用

PHP实现的网站目录扫描索引工具

<?php
error_reporting(E_ALL & ~E_NOTICE);
ignore_user_abort();
set_time_limit(0);
if ($_GET['act'] == 'op') {
	$data_url = $_GET['url'] . '/';
	$hz = $_GET['type'];
	list($fw1, $fw2) = explode('-', $_GET['fw']);
	$zs404 = strlen(file_get_contents_curl($data_url . "momaka")) + 200; //404页面字数
	$file_name = $_SERVER["REMOTE_ADDR"] . '_' . mt_rand(1000, 9999999) . '.txt'; //写入的文件名
	setcookie("file_name", $file_name, time() + 3600 * 24 * 7); //写入cookie 方便识别
	for ($i = $fw1;$i <= $fw2;$i++) {
		$name = $data_url . $i . $hz; //curl读取页面
		$data = file_get_contents_curl($name); //判断页面是否有用
		if (strlen($data) > $zs404) {
			$log = $name . ' *yes';
		} else {
			$log = $name . ' no';
		}
		file_put_contents($file_name, $log . PHP_EOL, FILE_APPEND); //写入文件
		if ($_GET['ys']) {
			sleep($_GET['ys']); //遇到防火墙使用延迟扫目录
			
		}
	}
}
if ($_GET['act'] == 'list') {
	$filename = $_COOKIE["file_name"]; //要下载的文件名
	header("Content-Type:application/force-download");
	header("Content-Disposition:attachment;filename=" . $filename);
	readfile($filename);
}
if ($_GET['file_name']) {
	$data = file_get_contents($_COOKIE["file_name"]);
}
/* CURL 配置函数 */
function file_get_contents_curl($url) {
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
	//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
	$dxycontent = curl_exec($ch);
	return $dxycontent;
}
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html ns="http://www.w3.org/1999/xhtml">
<head>
<http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<title>网站目录文件图片扫描工具</title>
<script src="jquery-1.8.3.min.js"></script>
</head>
<style>
body{ margin: 0; padding: 0; background-color: #F9F9F9;}
.list{margin: 0 auto; width: 500px; padding: 30px 0; background-color: #FFF; margin-top: 50px; border-radius: 8px; border: 1px solid #ECECEC;}
.list h1{ text-align: center; font-size: 1.8em; margin: 30px 0;color: #686B82;}
.list input{width: 250px; height: 28px; border-radius: 5px; border: 1px solid #CACACA; margin: 0 0 20px 20px; display: inline-block; padding: 2px 8px;}
input:focus { border-color: #66afe9; outline: 0; -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6); box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);}
#sm{width: 270px; height: 32px; font-size: 16px; background-color: #0DD88D; color: #FFF; border: 0;margin-left: 140px;cursor:pointer;}
.list span{float: left; display: inline-block; width: 120px; text-align: right; line-height: 30px;}
.list a{ text-align: center; display: block; color: #808080; text-decoration: none;}
</style>
<body>
<?php if($data) {?>
<p style="text-align:center;">
	每隔15秒更新一次数据 查找连接后面为 *yes 即可用页面
</p>
<?php echo $data; ?>
<script>function moma(){ history.go(0);}setInterval("moma()",15000);</script>
<?php }else{ ?>
<div class="list">
	<h1>网站目录文件扫描工具</h1>
	<span>链接:</span><input type="text" id="url" placeholder="如https://www.baidu.com" value="">
	<span>后缀:</span><input type="text" id="type" placeholder="如 .html ,目录模式则放空" value="">
	<span>范围:</span><input type="text" id="fw" placeholder="如1-99999或a-zzzzz" value="">
	<span>延迟:</span><input type="text" id="ys" placeholder="遇防火墙请填写轮询时间,如2" value="">
	<input type="submit" id="sm" value="扫描">
	<a href="index.php?file_name=1" target="_blank">查看扫描结果</a></br>
	<a href="index.php?act=list" target="_blank">下载扫描结果</a></br>
</div>
<?php } ?>
<div id="data">
</div>
<script>
$("#sm").click(function(){
	$(this).disabled=true; 
	if(confirm('之前有一个任务可能正在进行,选择确定则新建任务扫描,选择取消则查看任务')){
		$.get("index.php?act=op",
		{
			url : $("#url").val(),
			type : $("#type").val(),
			fw : $("#fw").val(),
			ys : $("#ys").val()
		},
		function(req) {
			alert("扫描结束!");
		});
	}else{
		window.open("index.php?file_name=1");
	}
})
</script>
</body>
</html>

有相同需求的小伙伴可以参考下

PHP 相关文章推荐
对text数据类型不支持代码页转换 从: 1252 到: 936
Apr 23 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 PHP
介绍一些PHP判断变量的函数
Apr 24 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
Jun 29 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
Yii实现复选框批量操作实例代码
Mar 15 PHP
YII框架批量插入数据的方法
Mar 18 PHP
购物车实现的几种方式优缺点对比
May 02 PHP
laravel异步监控定时调度器实例详解
Jun 21 PHP
PHP实现批量修改文件名的方法示例
Sep 18 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 PHP
如何用PHP实现分布算法之一致性哈希算法
May 26 PHP
php操作xml并将其插入数据库的实现方法
Sep 08 #PHP
php添加数据到xml文件的简单例子
Sep 08 #PHP
Yii2中事务的使用实例代码详解
Sep 07 #PHP
PHP模糊查询的实现方法(推荐)
Sep 06 #PHP
浅谈PHP中的数据传输CURL
Sep 06 #PHP
PHP实现页面静态化的超简单方法
Sep 06 #PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 #PHP
You might like
深入理解php的MySQL连接类
2013/06/07 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
低版本中Python除法运算小技巧
2015/04/05 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
Python队列的定义与使用方法示例
2017/06/24 Python
Django教程笔记之中间件middleware详解
2018/08/01 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
烹调加工管理制度
2014/02/04 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
银行招聘自荐信
2015/03/06 职场文书
高中团支书竞选稿
2015/11/21 职场文书
python中对列表的删除和添加方法详解
2022/02/24 Python
Python 图片添加美颜效果
2022/04/28 Python
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers