วิธีวิเคราะห์ลิงค์เพื่อหาลิงค์จริง


13

บางครั้งเมื่อดาวน์โหลดบางอย่างฉันพบว่าลิงค์ไม่ใช่ลิงค์โดยตรงไปยังไฟล์

ตัวอย่างเช่นนี่คือลิงค์สำหรับดาวน์โหลดไฟล์ PDF:

http://ishare.down.sina.com.cn/15181391.PDF?ssig=2jEFaNQs7K&Expires=1312905600&KID=sina,ishare&IP=1312761745,68.50.222

ฉันสงสัยว่าจะคิด / แฮ็คลิงก์จริง (เช่น http: //*.PDF) ไปยังไฟล์ได้อย่างไร

อะไรคือชื่อของเทคนิคดังกล่าวและคล้ายกันที่ไม่แสดงลิงค์โดยตรง? การอ้างอิงบางอย่างเช่น Wikipedia, ... ?


1
แก้ไขลิงก์ของคุณ คลิกeditเพื่อดูที่มาร์กอัปสำหรับวิธีที่ฉันทำ
Joel Coehoorn

คำตอบ:


3

ใช่บางครั้ง

มีสองสิ่งที่เกิดขึ้นโดยทั่วไป ลิงค์ของคุณไม่ทำงานอีกต่อไปดังนั้นฉันไม่แน่ใจว่าสถานการณ์จริงในกรณีนี้ดังนั้นฉันจะสรุปในลิงค์อื่น

HTTP Redirection

นี่คือสิ่งที่คุณเห็นด้วยBit.lyและบริการอื่น ๆ สิ่งที่ต้องทำคือจัดเตรียมการตอบสนองการเปลี่ยนเส้นทาง HTTP เมื่อคุณเยี่ยมชมhttp://bit.ly/oH3410 ระบบจะเปลี่ยนเส้นทางไปยัง URL จริง บางครั้ง URL หนึ่งเปลี่ยนเส้นทางไปยัง URL อื่น คุณสามารถเห็นสิ่งนี้เกิดขึ้นได้หากคุณเสียบ URL ลงในhttp://web-sniffer.net/หรือโดยใช้[curl][1] -I http://bit.ly/oH3410คุณจะเห็นผลตอบแทน 301 ตัวชี้ไปยังตำแหน่งใหม่

ดังนั้นในการจัดการกับ HTTP Redirection คุณเพียงแค่วนลูปคำขอ HTTP HEAD จนกว่าคุณจะหยุดรับการตอบกลับในยุค 300 (หวังว่าจะได้รับ 200) โปรดทราบว่าอาจเป็นไปได้ว่าพวกเขาจะเปลี่ยนเส้นทางในวงซึ่งจะไม่สิ้นสุด คุณสามารถทำได้ด้วย CURL หรือเครื่องมือ HTTP ใด ๆ

หน้าดาวน์โหลด

นี่คือสิ่งที่เว็บไซต์ดาวน์โหลดส่วนใหญ่ใช้ คุณคลิกลิงก์ดาวน์โหลดและนำคุณไปยังหน้าที่มีโฆษณามากมายและบอกว่า "การดาวน์โหลดของคุณจะเริ่มขึ้นในไม่ช้า" ซึ่งคล้ายกัน [ ตัวอย่าง ] ด้วยสิ่งเหล่านี้คุณสามารถลองแยกวิเคราะห์ลิงก์โดยตรงที่แท้จริงจาก URL แต่นั่นจะเป็นการเจาะจงไซต์และไซต์ส่วนใหญ่จะไม่รวมไว้เพื่อป้องกันไม่ให้คุณหลีกเลี่ยง สิ่งนี้ทำได้ผ่านmeta http-equiv="refresh"แท็กในส่วนหัวหรือ JavaScript (ส่วนใหญ่) JS มักจะมีทางเลือกส่วนหัวแม้ว่า

มีวิธีแก้ปัญหาคือแม้ว่า หากคุณดูแหล่งที่มาในหน้าดาวน์โหลดคุณจะเห็น<meta http-equiv="refresh">แท็ก (โดยปกติอยู่ใน<noscript>แท็ก) ที่มีแอตทริบิวต์ของURLจุดนั้นชี้ไปที่การดาวน์โหลดจริง ดังนั้นใช้ CURL (หรือเครื่องมือ HTTP อื่น ๆ ) เพื่อดาวน์โหลดหน้านี้แยกวิเคราะห์และคว้าค่านั้น ไซต์อาจยกเว้นสิ่งนี้แม้ว่าพวกเขาต้องการที่จะน่ารังเกียจจริงๆดังนั้นคุณต้องมี JavaScript เพื่อดาวน์โหลดไฟล์

อาจมีบล็อก JavaScript ที่เชื่อมโยงไปยังการดาวน์โหลดด้วย มันอาจจะสับสนหรือเชื่อมโยงจาก URL อื่น ระยะของคุณอาจแตกต่างกันออกไปพยายามที่จะแยกออก อาจมี "ลิงก์โดยตรง" ในหน้า คุณสามารถลองใช้เทคนิคสองสามอย่างเพื่อค้นหาสิ่งนั้น แต่อีกครั้งที่อาจทำให้งงงวยผ่านทาง JavaScript หรืออาจหายไปด้วยกัน


11

มันอาจเป็นไปไม่ได้ ไซต์สามารถดึงข้อมูลคุณผ่านการเปลี่ยนเส้นทางนับร้อยก่อนที่คุณจะไปถึงไฟล์

นอกจากนี้จาวาสคริปต์สามารถใช้เพื่อมอบลิงก์ตาม URL ที่มอบให้กับเซิร์ฟเวอร์


ขอบคุณ! อะไรคือชื่อของเทคนิคดังกล่าวและคล้ายกันที่ไม่แสดงลิงค์โดยตรง? การอ้างอิงบางอย่างเช่นวิกิพีเดีย ... ?
ทิม

1
เพียงแค่เปลี่ยนเส้นทาง ไม่รู้เทคนิคอื่นใด ดูที่นี่
soandos

เมื่อมีการเชื่อมโยงไปยังไฟล์และเช่นเมื่อเทียบกับหน้าปกติก็มักจะเรียกว่าป้องกันปลิง
Synetech

7

ไซต์อาจถูกสคริปต์และเมื่อได้รับคำสั่งบางอย่าง (URL สามารถส่งคำสั่งได้) ก็อาจส่งคืนไฟล์ PDF (หรือไฟล์อื่น ๆ ) โดยไม่เปลี่ยนเส้นทาง มีสิ่งที่ฝั่งเซิร์ฟเวอร์และขึ้นอยู่กับวิธีการเข้ารหัสเว็บไซต์ หากไม่ได้ขอลิงค์นั้นจากเซิร์ฟเวอร์จริง ๆ คุณไม่สามารถทราบวิธีรับไฟล์ได้ และบางครั้งแม้ว่าคุณรู้จัก URL โดยตรงคุณอาจไม่ได้รับอนุญาตให้เข้าถึงลิงก์โดยตรง บางเว็บไซต์มีการเข้ารหัสเพื่อให้ลิงก์โดยตรงไม่ทำงาน


1
สิ่งนี้ถูกต้อง เพิ่มเติมเล็กน้อย: เมื่อลูกค้าเข้าถึงลิงค์ที่คลุมเครือเช่นนั้นและเซิร์ฟเวอร์ต้องการบอกลูกค้าว่านี่เป็นไฟล์ PDF จริง ๆ และควรบันทึกเป็นไฟล์ pdf เซิร์ฟเวอร์จะบอกให้ลูกค้าทราบผ่าน Content-Type HTTP หัวข้อ.
vtest

3

นี่คือ URL "จริง" ที่ค่อนข้างสวยสำหรับเว็บไซต์ที่ได้รับการป้องกันคุณต้องส่ง URL ที่สมบูรณ์สำหรับเซิร์ฟเวอร์เพื่อตรวจสอบสิทธิ์คำขอของคุณ คุณอาจถูกนำไปยัง URL อื่นในภายหลัง แต่โดยปกติจะเป็นแบบครั้งเดียว กล่าวอีกนัยหนึ่งเว็บไซต์ดาวน์โหลดไฟล์เหล่านี้จะไม่ให้ลิงก์โดยตรงที่สามารถใช้ประโยชน์ได้

ใน URL เฉพาะนี้พารามิเตอร์ซึ่งได้รับการป้องกันโดยลายเซ็นดิจิทัลแสดงรายการเวลาและข้อ จำกัด IP ของตัวดาวน์โหลดอย่างชัดเจน สำหรับเว็บไซต์ที่มีความสามารถระดับนี้ไม่น่าจะมีลิงก์รั่วไหลออกมาโดยตรง


3

ลิงค์เปลี่ยนเส้นทางเหล่านี้มักจะเกี่ยวข้องกับสถานะเซสชัน พวกเขาจะทำการตรวจสอบเอกชนตามการเข้าสู่ระบบเซสชันของคุณก่อนที่จะให้ลิงก์กับคุณ - ไม่มีการเข้าถึงทรัพยากร = ไม่มีการเข้าถึงลิงก์ไปยังทรัพยากร มันสามารถใช้เพื่อให้การเข้าถึงไฟล์ / ทรัพยากรที่อยู่นอกเว็บรูทและสตรีมกลับไปที่ผู้ร้องขอโดยแอปแทนที่จะใช้งานได้ผ่าน URL โดยตรง แต่ถ้าส่วนตัวของคุณอนุญาต

ตัวอย่างของทั้งคู่อยู่ที่นี่ มันจะนำคุณไปยัง URL อื่นอีกครั้งโดยอิงจากสตริง 'mkoenig' ที่เพิ่ม parms URL เพิ่มเติม re-direct จะทำในการเข้ารหัสฝั่งเซิร์ฟเวอร์ซึ่งคุณจะไม่สามารถมองเห็นได้ (หรืออย่างน้อยก็ไม่ควร) หากคุณไปที่ 'ไฟล์บนเว็บ' ไฟล์ที่แสดงเป็นไฟล์ที่ครูเป็นผู้เผยแพร่เท่านั้น เธออาจมีไฟล์อื่น ๆ อยู่ที่นั่นซึ่งคุณไม่สามารถไปได้และไฟล์ไหนจะไม่ปรากฏในรายการ ที่จัดการด้วยการเข้ารหัสฝั่งเซิร์ฟเวอร์โดยคำนึงถึงสิ่งที่มันจะ / จะไม่ส่งคืน

หากไม่แฮ็คเซิร์ฟเวอร์หรือเข้าถึงซอร์สโค้ดฝั่งเซิร์ฟเวอร์ฉันไม่เชื่อว่าคุณจะได้รับลิงก์จริงและแม้ว่าคุณจะทำได้มันอาจไม่เป็นประโยชน์เว้นแต่ว่าเซสชันส่วนตัวของคุณบอกเซิร์ฟเวอร์ให้คุณเข้าถึง .

เกร็ก


2

มันเป็นไปไม่ได้ ฉันขอแนะนำให้คุณใช้ VM หรือคว้าสำเนา Sandboxie เพื่อเก็บเบราว์เซอร์ของคุณเพื่อใช้เป็นลิงก์เช่นนี้

แก้ไข

ไม่ทราบว่าคุณใช้ระบบปฏิบัติการใดฉันจะให้คำตอบทั่วไปที่นี่

VM นั้นสั้นสำหรับเครื่องเสมือน มันเป็นซอฟต์แวร์สร้างคอมพิวเตอร์ที่ทำงานอยู่ภายในคอมพิวเตอร์ของคุณ เครื่องเสมือนจะมีระบบปฏิบัติการและเบราว์เซอร์ของตัวเอง แม้ว่ามันจะยังคงใช้อินเทอร์เน็ตของเครื่องและฮาร์ดไดรฟ์ของคุณ แต่มันก็เป็นเครื่องแยกต่างหากจากมุมมองของระบบปฏิบัติการ ทำให้สะดวกเหมือนกระดาษที่มีรอยขีดข่วน สิ่งใดก็ตามที่เกิดขึ้นภายใน VM ไม่ส่งผลกระทบต่อเครื่องจริงของคุณ

Virtualboxเป็นซอฟต์แวร์ที่ฉันแนะนำให้คุณใช้กับ VM ยกเว้นว่าคุณใช้ Windows อยู่แล้วฉันก็จะแนะนำ Virtual PC

Sandboxieเป็นเสมือน VM แต่มันแยกแอพพลิเคชั่นเฉพาะออกไป คุณสามารถบอกให้เรียกใช้สำเนาเบราว์เซอร์ของคุณและไฟล์หรือการกระทำใด ๆ ที่เบราว์เซอร์ทำจะถูกเปลี่ยนเส้นทางไปยังโฟลเดอร์ชั่วคราวเป็นหลัก ดังนั้นหากพยายามดาวน์โหลดไวรัสมันจะถูกเปลี่ยนเส้นทางไปยังโฟลเดอร์ชั่วคราวที่ถูกกักกันจากเครื่องที่เหลือของคุณ มันไม่ได้แข็งแกร่งเหมือน VM แต่ใช้ CPU / หน่วยความจำน้อยกว่าและเร็วกว่าและสะดวกกว่า

ฉันจะลอง Sandboxie ก่อน มันเป็นช่วงการเรียนรู้ที่เล็กลง


1
ขอบคุณ! คุณหมายถึงอะไร "เปิด VM หรือคว้าสำเนา Sandboxie เพื่อเก็บเบราว์เซอร์ของคุณสำหรับลิงก์เช่นนี้" บางคนอ้างอิงเพื่ออธิบายวิธีการทำสองสิ่ง?
ทิม

ขออภัยฉันจะขยายคำตอบของฉัน
surfasb

ขอบคุณ! ระบบปฏิบัติการของฉันคือ Ubuntu แต่ฉันไม่เข้าใจว่าการใช้ VM สามารถระบุลิงก์โดยตรงได้อย่างไร
ทิม

1
ไม่ได้ระบุลิงค์สำหรับคุณจริงๆ แต่มันสร้างสภาพแวดล้อมที่ปลอดภัยที่จะช่วยคุณระบุลิงก์ คุณไม่สามารถระบุการเปลี่ยนเส้นทางโดยไม่ต้องรวบรวมหน้า
surfasb

1
ฉันไม่คิดว่าคำถามของเขาเกี่ยวกับความปลอดภัย เขาแค่มองหาวิธีรับลิงค์ไฟล์โดยตรง
magnattic

2

มันเป็นไปไม่ได้เลยที่จะเข้าใจลิงค์จริง

เซิร์ฟเวอร์จัดการคำขอไฟล์โดยใช้ WWW Rewrite (ตัวอย่างเช่นเซิร์ฟเวอร์ apache) ดังนั้นตัวอย่างเช่นคุณอาจไปที่หน้าเว็บwww.example.com/13-this-site-has-nice-page-name.htmlแต่ในความเป็นจริงคุณสามารถเข้าถึงไฟล์ php ได้โดยใช้พารามิเตอร์เช่น:www.example.com/site_handler.php?UID=13

แม้ว่าคุณจะเข้าถึงไฟล์ PDF อาจมีการเปลี่ยนเส้นทางในฝั่งเซิร์ฟเวอร์เอง

สำหรับการดาวน์โหลดไฟล์ด้วยตัวจัดการอาจเป็นเรื่องยากกว่าเดิมเนื่องจากคุณสามารถไปที่หน้าที่เป็นเพียงตัวจัดการดาวน์โหลดตัวอย่างเช่น: www.example.com?file_downloader.php?param1=7683&param2=jld8ijn, etc... ในกรณีนี้สคริปต์ที่คุณกำลังเข้าถึงอาจถูกส่งโดยมีส่วนหัวเดียว (เช่น ไฟล์ pdf) แต่ในความเป็นจริงมันเป็นไฟล์ php

สรุป: คุณไม่สามารถรู้ได้ว่าเซิร์ฟเวอร์ & สคริปต์ได้รับการกำหนดค่าอย่างไรดังนั้นคุณจึงไม่มีทางรู้ที่แท้จริงจริง ๆ แม้ว่ามันจะดูเหมือนว่าคุณรู้


1

เมื่อคุณส่งคำขอไปยังเว็บเซิร์ฟเวอร์ (คลิกที่ลิงค์) เซิร์ฟเวอร์สามารถส่งคำตอบที่แตกต่างกันจำนวนหนึ่ง ตัวอย่างทั่วไปคือ 404 (ไม่พบหน้าเว็บ), 403 (ต้องห้าม) หรือ 500 (ข้อผิดพลาดเซิร์ฟเวอร์) น่าจะเป็นรหัสตอบกลับที่พบบ่อยที่สุดคือ 200 (Ok) แต่คุณจะไม่เคยเห็นมันเพราะมันมักจะมาพร้อมกับหน้าเว็บที่คุณหวังว่าจะเห็น

มีอีกสองรหัสเล่นที่นี่: 301 และ 302 รหัส 301 และ 302 เป็นรหัสเปลี่ยนเส้นทางและพวกเขาบอกเบราว์เซอร์ของคุณว่าคำตอบที่คุณต้องการได้ย้ายไปที่อื่น ความแตกต่างที่สำคัญระหว่างพวกเขาคือวิธีที่เบราว์เซอร์แคชสิ่งต่าง ๆ รหัส 301 หมายถึง "ย้ายอย่างถาวร" และในครั้งต่อไปที่คุณพยายามเยี่ยมชมลิงก์เดิมเบราว์เซอร์อาจจำได้ว่าหน้านั้นย้ายแล้วและไปยังตำแหน่งใหม่โดยตรง 302 หมายถึง "พบที่อื่น" และจะให้ลิงก์ที่เบราว์เซอร์ของคุณควรใช้ชั่วคราวเท่านั้น

มันควรจะเป็นไปได้ที่จะเขียนโปรแกรมที่จะตรวจสอบการเชื่อมโยงและตราบใดที่คุณได้รับการตอบสนอง 30x ติดตามการตอบสนองจนในที่สุดก็จะได้รับ 200 ณ จุดนี้แทนที่จะดาวน์โหลดเนื้อหามันจะแสดงลิงค์

น่าเสียดายที่มันมีความซับซ้อนมากกว่านั้น เพจ Html <meta http-equiv="refresh" content="0;url=NEW PAGE URL" />ยังสามารถเปลี่ยนเส้นทางไปยังสถานที่ใหม่โดยใช้เมตาแท็กในส่วนหัวของหน้าเว็บที่มีลักษณะบางอย่างเช่นนี้ ดังนั้นโปรแกรมดังกล่าวจะต้องแยกวิเคราะห์ html อย่างสมบูรณ์เพื่อให้แน่ใจว่าเราไปถึงการเปลี่ยนเส้นทางครั้งสุดท้าย

นอกจากนี้หน้าเว็บอาจนำคุณไปสู่การใช้จาวาสคริปต์ต่อไปและจาวาสคริปต์อาจทำให้สับสน ดังนั้นตอนนี้โปรแกรมสมมุติของเราก็ต้องเข้าใจจาวาสคริปต์ด้วย ณ จุดนี้เรามีเว็บเบราว์เซอร์ที่ทำงานได้อย่างสมบูรณ์ เราไม่มีรายละเอียดเล็ก ๆ น้อย ๆ เกี่ยวกับการแสดงผลหน้าจอจริง แต่โปรแกรมของเรามีเกือบทุกอย่างที่คุณต้องการสำหรับเว็บเบราว์เซอร์ที่สมบูรณ์รวมถึงปัญหาด้านความปลอดภัยที่เกี่ยวข้องทั้งหมด คุณไม่ได้ดีไปกว่านี้อีกแล้วหากคุณเพิ่งคลิกลิงก์ตามปกติตั้งแต่แรก


1

สมมติว่า Windows: ติดตั้งFiddler Web Debugging Proxyเปิดใช้งาน จากนั้นไปที่ URL เริ่มต้นของคุณและดูการเปลี่ยนเส้นทางทั้งหมดในบานหน้าต่างด้านซ้ายของ Fiddler บนบานหน้าต่างด้านขวาให้เปลี่ยนแท็บเพื่อแสดง "คำขอส่วนหัว" และ "ตอบกลับส่วนหัว" ฉันใช้มันเพื่อจุดประสงค์ดังกล่าวสำเร็จแล้ว

ในทางกลับกัน URL "สุดท้าย" เพียงอย่างเดียวอาจไม่ทำงานในลักษณะเดียวกันหากคุณเรียกดูโดยตรงเพราะคำขออาจไม่มีผู้อ้างอิงที่ถูกต้องหรือพลาดข้อ จำกัด อื่น ๆ

แต่คุณยังสามารถส่งคำขอที่กำหนดเองด้วยส่วนหัวที่กำหนดเองใน Fiddler ดูแท็บ "เครื่องมือสร้างคำขอ" สำหรับสิ่งนั้น


0

ส่วนใหญ่ขึ้นอยู่กับเว็บไซต์

ในการทำเช่นนี้คุณต้องศึกษาแต่ละเว็บไซต์แยกกันและมีกลไกแยกต่างหาก (หรือรหัส) สำหรับแต่ละไซต์เพื่อส่งคืน URI โดยตรง

คุณยังสามารถศึกษา Add-on ของเบราว์เซอร์โอเพนซอร์สซึ่งมีฟังก์ชันการทำงานที่คล้ายกัน


0

ในการตรวจสอบที่มีการเชื่อมโยงการเปลี่ยนเส้นทางให้คุณคุณสามารถใช้http://longurl.org/ เป็นประโยชน์อย่างยิ่งสำหรับ URL ที่สั้นลง มันไม่มีประโยชน์สำหรับการดาวน์โหลดสคริปต์ ฯลฯ


0

หากคุณใช้ Firefox คุณสามารถใช้ addon RequestPolicyที่จะหยุดและขออนุญาตเมื่อใดก็ตามที่คุณถูกเปลี่ยนเส้นทางไปยังโดเมนอื่น มันจะไม่ทำงานหากคุณต้องการค้นหาการเปลี่ยนเส้นทางที่ไม่ได้ไปยังโดเมนอื่น แต่ฉันแน่ใจว่ามี Addon Firefox ที่แตกต่างกันสำหรับสิ่งที่ฉันไม่รู้ =)

https://www.requestpolicy.com/

โปรดทราบว่ามันจะทำลายจำนวนมากของเว็บไซต์ที่ใช้ CDN (กระจายเนื้อหาเครือข่าย) ตั้งแต่เริ่มต้นมันบล็อกทุกภาพข้ามโดเมนสคริปต์, CSS และการเปลี่ยนเส้นทาง ดังนั้นจึงไม่ใช่ทางเลือกที่แย่ที่สุดหากคุณต้องการทราบว่าจะมีการเปลี่ยนเส้นทางไปที่ไหนเว้นแต่คุณพร้อมที่จะต้องทำตามขั้นตอนเพิ่มเติมบางครั้งทุกครั้งที่คุณเยี่ยมชมเว็บไซต์ใหม่


0

ฉันไม่แน่ใจจริงๆ แต่ถ้าคุณใช้ CUrl คุณจะไม่เพียงแค่รับเนื้อหา URL (get_file_contents (url) ใน PHP) แล้วตรวจสอบประเภท MIME หรือไม่


0

(ในขณะเดียวกัน) มีเครื่องมือออนไลน์ที่ยอดเยี่ยมที่จะช่วยติดตามการเปลี่ยนเส้นทาง

และมีส่วนขยายที่ดีสำหรับ Google Chrome

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.