首页
学习
活动
专区
圈层
工具
发布

无需点击,通过qq的xml卡片自动获取对方ip

几秒钟后我傻眼了,该机器人返回了几个ip和浏览器ua信息,其中我的ip和手机型号赫然出现在我的眼前,难以置信,愣了半天后,心里立马冒出了好奇的想法,今天必须把这个原理搞明白,不然我会睡不着觉。...0x01 php获取ip 因为不是很会php,就到网上找了个找,发现需要用到如下几个函数:getenv('HTTP_CLIENT_IP')getenv('HTTP_X_FORWARDED_FOR')getenv...,我们还需要用到imagecreatefromjpeg()函数,他的作用是将php文件伪装成图片,构造代码如下: $im = imagecreatefromjpeg("1.jpg");//这样php返回的图片就会是同目录下的...长按发送按钮转成xml卡片消息 此时查看服务器,发现已经生成了记录hack.txt 文件内容为 可以看到获取到了三个ip,没有ua值的是腾讯服务器的ip,第一个是大号本机的ip...0x06 后记 讲真,在现在这个时代拿到ip并没有什么实际的用处,顶多能够吓吓小白或者在小白面前装装逼,但这里还是要说一句,我只是做一个分享,若因此文章产生了比较重大的问题(虽然不大可能),一切责任自负

9K32

【Kotlin 协程】Flow 异步流 ① ( 以异步返回返回多个返回值 | 同步调用返回多个值的弊端 | 尝试在 sequence 中调用挂起函数返回多个返回值 | 协程中调用挂起函数返回集合 )

文章目录 一、以异步返回返回多个返回值 二、同步调用返回多个值的弊端 三、尝试在 sequence 中调用挂起函数返回多个返回值 四、协程中调用挂起函数返回集合 一、以异步返回返回多个返回值 ----...在 Kotlin 协程 Coroutine 中 , 使用 suspend 挂起函数 以异步的方式 返回单个返回值肯定可以实现 , 参考 【Kotlin 协程】协程的挂起和恢复 ① ( 协程的挂起和恢复概念...// 调用 " 返回 List 集合的函数 " , 并遍历返回值 listFunction().forEach { // 遍历打印集合中的内容...sequence 中调用挂起函数返回多个返回值 ---- 尝试使用 挂起函数 kotlinx.coroutines.delay 进行休眠 , 这样在挂起时 , 不影响主线程的其它操作 , 此时会报如下错误...---- 如果要 以异步方式 返回多个返回值 , 可以在协程中调用挂起函数返回集合 , 但是该方案只能一次性返回多个返回值 , 不能持续不断的 先后 返回 多个 返回值 ; 代码示例 : package

13K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP新浪图床系统源码分享

    系统介绍     在幻想领域中, 图床图片全部托管在 新浪云, 每张图片都有多张不同级别的缩略图.这便是幻想领域的最大特色之一. 拥有较为完善的用户系统与管理员系统。...管理员在后台拥有完全权限,对网站的一切基本配置     我的图库,将会罗列出用户自己所上传的所有图片,管理员则显示系统托管的所有图片.你可以在这里对图片进行删除、预览或者复制它,但删除仅仅只是不再出现在本系统中...admin 但是讽刺的是,您需要在前台进行登录 环境条件     请注意,幻想领域自1.0版本起只支持PHP版本≥5.6的PHP版本。     ...(getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } else if (getenv('REMOTE_ADDR...第29行$smtp_port = 25修改成$smtp_port = 465或者另外的端口即可 4、验证码不显示     应该是你的伪静态没有设置成功,请参考前面的环境条件进行设置

    4.3K40

    代码审计:BlueCMS v1.6

    magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误...如果没有开启gpc,对_GET、_POST、_COOKIES、_REQUEST使用deep_addslashes()函数过滤一遍,那么我们跟踪一下这个函数,在PHPSTORM中,选中函数使用Ctrl+B...可以看到就是调用addslashes() 函数去过滤传递过来的值。 addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。...发现其是getip的值,继续跟踪该函数: function getip() { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP...user.php(存储型xss) 在do_add_news时,$content没有被htmlspecialchars过滤,只被filter_data过滤: ?

    2.2K40

    PHP获取客户端IP地址方式

    一、如果没有使用代理服务器 REMOTE_ADDR = 客户端IP HTTP_X_FORWARDED_FOR = 没数值或不显示 $ip = $_SERVER['REMOTE_ADDR']; 二...= 代理服务器 IP (经过多个代理服务器时,这个值类似:203.98.182.163, 203.98.182.163, 203.129.72.215)   这样就隐藏了客户端的真实ip,但服务器会知道客户端是通过代理服务器去访问的...四、使用欺骗性代理服务器 REMOTE_ADDR = 代理服务器 IP HTTP_X_FORWARDED_FOR = 随机的 IP(经过多个代理服务器时,这个值类似:220.4.251.159, 203.98.182.163...五、使用高匿名代理 REMOTE_ADDR = 代理服务器 IP HTTP_X_FORWARDED_FOR = 没数值或不显示   使用这种代理时,不同浏览器不同设备会返回不同的ip头信息,...返回0,>0,<0。

    5.8K20

    PHP中环境变量的操作

    PHP中环境变量的操作 在 PHP 中,我们可以通过 phpinfo() 查看到当前系统中的环境变量信息(Environment)。在代码中,我们也可以通过两个函数,查看和修改相应的环境变量信息。...不过需要注意的是,在 CLI 环境和 SAPI 环境下它所返回的信息是不一样的。...,则此函数将始终返回由 SAPI 设置的环境变量的值,即使已使用 putenv() 来设置同名的本地环境变量。..."), PHP_EOL; // GET echo getenv("REQUEST_METHOD", true), PHP_EOL; // 在第二个参数不为 true 的情况下,我们可以通过 getenv...所以,在 php.ini 中,默认情况下 putenv() 是定义为危险函数的,也就是在 disable_functions 中需要删除掉这个函数才能正常使用,如果要使用 Composer 的话也必须要开启这个函数才能正常使用

    1.5K10

    技术分享 | 深入分析APPCMS<=2.0.101 sql注入漏洞

    getenv('HTTP_CLIENT_IP')也就是获取传递过去的CLIENT_IP的值,即在请求包中http头的client_ip字段对应的值,也就是这里导致了我们可以输入用户可控的数据。...= getenv('HTTP_CLIENT_IP');} 这里的意思就是当client_ip存在而且getenv('HTTP_CLIENT_IP')的返回值不为unknown时,就会直接把client_ip...这里经过多次尝试在burp中不改变请求包中的验证码的值多次提交过去,能够得到code:0的回显的,也就是这里这个验证码验证是可以被绕过的!直接提交一次之后不变就可以了。...注意:这里注入的时候使用的是 client-ip而不是client_ip,不要混淆了php中获取时使用的getenv('HTTP_CLIENT_IP') 这里才是用下划线,而请求包中应该使用横杆- (...0x03漏洞修复 因为这里的核心原因是没有对$fields['ip'] 这个变量做过滤,也没有检查它是否合法,所以这里简单的给出一个修复方案,在comment.php的79行后面添加两行代码,如图 ?

    2.2K80

    最新XFF注入攻击和代码分析技术

    XFF注入攻击 XFF注入攻击的测试地址在本书第2章。...X-Forwarded-For简称XFF头,它代表客户端真实的IP地址,通过修改X-Forwarded-For的值可以伪造客户端IP地址,在请求头中将X-Forwarded-For设置为127.0.0.1...图4-67 将X-Forwarded-For设置为127.0.0.1',再次访问该URL,页面返回MySQL的报错信息,结果如图4-68所示。...图4-69 图4-70 通过页面的返回结果,可以判断出该地址存在SQL注入漏洞,接着使用order by判断表中的字段数量,最终测试出数据库中存在4个字段,尝试使用Union查询注入方法,语法是...XFF注入代码分析 PHP中的getenv()函数用于获取一个环境变量的值,类似于_SERVER或_ENV,返回环境变量对应的值,如果环境变量不存在,则返回FALSE。

    1.1K40

    有什么方法可以快速筛选出 pitch 中的值 在0.2 > x > -0.2 的值?

    一、前言 前几天在Python钻石交流群有个叫【进击的python】的粉丝问了一个Python基础的问题,这里拿出来给大家分享下,一起学习下。...他的数据如下图所示: 有什么方法可以快速筛选出 pitch 中的值 在0.2 > x > -0.2 的值呢?...二、解决过程 这个问题肯定是要涉及到Pandas中取数的问题了,从一列数据中取出满足某一条件的数据,使用筛选功能。 他自己写了一个代码,如下所示: 虽然写的很长,起码功能是实现了的。...后来【LeeGene】大佬给了一个代码,如下所示: df = df[df.pitch>0.2] 看上去确实很简单,不过还没有太满足需求,后来【月神】补充了下,取绝对值再比较。...这篇文章主要分享了一个Pandas筛选的问题,文中针对该问题给出了具体的解析和代码演示,帮助粉丝顺利解决了问题。

    2.4K20

    微信H5支付(手机浏览器请求)

    最近在做一个微信H5支付的功能,开发中遇到了一些问题,网上相关的资料比较少,在此做下总结以供参考。 一、功能需求 手机浏览器页面发起产品购买请求,调起微信支付,支付完成后返回购买页面展示支付结果。...这里需要注意的是,想要调起微信支付,需要后端向微信发起统一下单,成功后返回结果有mweb_url字段,该字段的值是一个URL,为支付跳转链接。...'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown...$matches [0] : ''; } } 2、用户在微信中间页面操作后(支付或取消支付)会回跳到我们指定的回调地址,并带上我们拼装的参数。...三、总结 1、参照微信文档,文档中给出了详细的流程步骤。

    3.9K10

    RuntimeException: Unable to boot ApiServiceProvider, configure an API domain or prefix 解决办法和原因所在

    我是一个刨根问底的人,在我的不懈努力下发现,原来这是php ts 版本会出现的问题。 原因所在 这其实是php的一个已知问题(只是对于我来说是未知 :p) 问题仅仅出现在php ts版本中。...这对于Ajax请求来说是有问题的,或者仅仅是当用户在新标签中打开多个链接时。 下面我以laravel为例重现此问题。...接下来在学妹的电脑上(ts)演示,同样的操作细节,结果却返回空!...正常等待5s结果: 在第一次请求没有结束之前立刻再次请求的结果: ok,这就是为什么在学妹本地环境中访问我的接口,会报错的原因,就是因为他ts版本的php没有找到env对应的值。...1 他不是找不到值么,好的,我给他个默认值: 找到config / api.php文件,大约第60行 'prefix' => env('API_PREFIX', null) 更改为 'prefix' =

    1.2K30

    php获取客户端IP和服务器端IP

    1.php获取客户端IP 在PHP获取客户端IP时,常使用 _SERVER[“REMOTE_ADDR”] 。...“,”分隔);而在“匿名代理”、“欺骗性代理”的情况下是代理服务器的IP值(如果是多层代理,该值可能由多个代理服务器的IP组成,由逗号“,”分隔);在“高匿名代理”的情况下是空值。...HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。...三个值区别如下: 一、没有使用代理服务器的情况: REMOTE_ADDR = 您的 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示 二、使用透明代理服务器的情况...$_SERVER[“SERVER_ADDR”],在服务器端测试:127.0.0.1(这个与httpd.conf中BindAddress的设置值相关)。在客户端测试结果正确。

    5.6K30

    php配置redis拓展流程与redis的使用

    TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。...: redis地址:https://windows.php.net/downloads/pecl/releases/redis/ 选择对应版本: 将包中对应文件放入php安装目录的ext目录中 将上面两图中用红线圈住的部分放入...,同时设置key0和key1$redis->mset(array('key0' => 'value0', 'key1' => 'value1'));key中的值进行自增1,如果填写了第二个参数,者自增第二个参数所填的值...>lPushx(key, value);在名称为key的list左边(头)/右边(尾)添加一个值为value的元素,如果value已经存在,则不添加$redis->lpop('list');输出链表最左边的...7的值,成功返回1集合:sadd,sadd是无序的集合,每次插入集合的时候都可能会弄乱里面集合的排序

    1.3K10
    领券