GitHub สำหรับ Bug Bounty Hunters
สำหรับนักล่าค่าหัวแมลง ที่เก็บ GitHub สามารถเปิดเผยข้อมูลที่อาจเป็นประโยชน์ได้หลากหลาย อาจมีปัญหากับเป้าหมายที่ไม่ได้เปิดแหล่งที่มาเสมอไป บางครั้งข้อมูลที่สามารถใช้กับบริษัทเป้าหมายถูกเปิดเผยโดยไม่ได้ตั้งใจโดยสมาชิกองค์กรและโครงการโอเพ่นซอร์สของพวกเขา ฉันจะให้ภาพรวมโดยย่อในบทความนี้ซึ่งจะช่วยให้คุณเริ่มสแกนที่เก็บ GitHub เพื่อหาช่องโหว่และดำเนินการสำรวจทั่วไป
การโคลนนิ่ง 1 ครั้ง
คุณเพียงแค่ทำการวิจัยของคุณบน github.com อย่างไรก็ตาม เพื่อเปิดใช้งานการทดสอบในเครื่อง ฉันแนะนำให้โคลนที่เก็บเป้าหมายทุกแห่ง GitHubCloner โดย@ mazen160เป็นผลิตภัณฑ์ที่ยอดเยี่ยม สิ่งที่คุณต้องทำคือเรียกใช้สคริปต์เพื่อให้พร้อมใช้งาน
$ python githubcloner.py --org organization -o /tmp/output
สิ่งสำคัญคือต้องเข้าใจโครงการที่คุณตั้งเป้าไว้ก่อนที่จะเริ่มการวิเคราะห์แบบคงที่ ใช้คุณสมบัติหลักในขณะที่ดำเนินโครงการ เหตุผลที่ฉันเรียกสิ่งนี้ว่า “ขั้นตอนของ Jobert” เพราะฉันได้ยินมาว่าก่อนที่จะเริ่มการล่าทุกครั้งJobertจะใช้โครงการและทำความเข้าใจกับเป้าหมายเป็นอย่างดีก่อนที่จะมองหาจุดอ่อน
3- การวิเคราะห์ด้วยตนเอง
คำพูดที่ว่า“เรียนรู้ที่จะทำมัน แล้วทำลายมัน”ใช้ได้กับสถานการณ์นี้ หากคุณสามารถเรียนรู้ภาษาโปรแกรมได้ คุณควรจะสามารถเข้าใจรายละเอียดปลีกย่อยของมาตรการป้องกันความปลอดภัยที่ควรปฏิบัติและหลีกเลี่ยงได้
คุณสามารถเริ่ม grepping ได้เมื่อคุณคุ้นเคยกับเป้าหมายและสถาปัตยกรรมของมันแล้ว มองหาคำหลักที่คุณสนใจ คุ้นเคย หรือทราบว่านักพัฒนามักจะเข้าใจผิด
ต่อไปนี้เป็นรายการพื้นฐานของคำค้นหาบางส่วนที่ฉันจะใช้ระหว่างการประเมินแบบกว้างๆ ครั้งแรก:
- API และคีย์ (รับจุดสิ้นสุดเพิ่มเติมและค้นหาคีย์ API)
- โทเค็น
- ความลับ
- ทำ
- รหัสผ่าน
- อ่อนแอ
- http:// & https://
- ซีเอสอาร์เอฟ
- สุ่ม
- กัญชา
- MD5, SHA-1, SHA-2 เป็นต้น
- เอชแมค
ขั้นตอนสำคัญอีกประการหนึ่งคือการตรวจสอบประวัติการคอมมิต คุณจะประหลาดใจกับข้อมูลที่คุณสามารถรวบรวมได้จากการกระทำ ฉันเคยเห็นผู้ร่วมให้ข้อมูลเข้าใจผิดว่าพวกเขาได้ลบข้อมูลประจำตัวในขณะที่ยังคงอยู่ในประวัติการกระทำ เนื่องจากประวัติคอมไพล์ ฉันได้ค้นพบจุดสิ้นสุดแบบโบราณที่ยังคงใช้งานได้ นอกเหนือจากข้อกังวลในปัจจุบัน คุณอาจพบปัญหาในอดีตที่อาจหลีกเลี่ยงได้เนื่องจากข้อผูกมัดเก่า
4- เครื่องมือ
บางครั้งการทำงานที่น่าเบื่อโดยอัตโนมัติสามารถช่วยให้คุณเห็นภาพรวมเบื้องต้นเกี่ยวกับสิ่งที่ต้องค้นหา สิ่งสำคัญคือต้องจำไว้ว่าคุณไม่ควรคัดลอกและวางผลการสแกนลงในรายงาน คุณจะได้รับผลบวกลวงจำนวนมาก ดังนั้นคุณควรตรวจสอบปัญหาที่อาจเกิดขึ้นอย่างรอบคอบเพื่อให้แน่ใจว่าสามารถถูกโจมตีได้
เครื่องมือหลักที่ฉันใช้เมื่อทำโครงการ Python คือBandit
Banditจะระบุปัญหาทั่วไป แต่มักจะส่งกลับผลบวกปลอมหรือผลไม้ห้อยต่ำ ดังนั้นใช้ด้วยความระมัดระวัง ไม่ต้องสงสัยเลยว่ามันไม่ควรพึ่งพา
$ bandit -r path/to/your/code -ll
Snyk.ioเป็นเครื่องมือที่ยอดเยี่ยมสำหรับตรวจสอบการพึ่งพา แพลตฟอร์มรองรับภาษาที่หลากหลาย
สำหรับรีคอน นักวิจัยหลายคนแนะนำให้ใช้Gitrob เครื่องมือนี้จะค้นหาข้อมูลที่ละเอียดอ่อนในที่เก็บ GitHub สาธารณะ
$ gitrob analyze acme,johndoe,janedoe
$ truffleHog https://github.com/dxa4481/truffleHog.git
สำหรับ แอพ Ruby on Rails ฉันขอแนะนำBrakeman Brakeman เป็นเครื่องสแกนความปลอดภัยในการวิเคราะห์แบบสแตติกที่สามารถค้นหาปัญหาด้านความปลอดภัยต่าง ๆ มากมายในโค้ด
ใช้LinkFinderโดยGerben Javado เพื่อค้นหาจุดสิ้นสุดในไฟล์ JSของที่เก็บ
$ python linkfinder.py -i 'path/to/your/code/*.js' -r ^/api/ -o cli
ตกลง อย่าเอาจริงเอาจังกับโซเชียลเอ็นจิเนียร์เจ้าของโครงการ
การรายงานสิ่งที่คุณค้นพบ
เช่นเคย เมื่อพูดถึงการล่าเงินรางวัลจากบั๊ก โปรดอ่านนโยบายของโปรแกรมอย่างละเอียด โปรแกรมไม่ค่อยยอมรับรายงานผ่าน GitHub ติดต่อทีมรักษาความปลอดภัยหรือหากเป็นไปได้ให้ใช้แพลตฟอร์มรางวัลบั๊ก เช่นHackerOneหรือBugcrowd
สิ่งที่น่าสนใจเกี่ยวกับการทดสอบกล่องขาวก็คือ เนื่องจากคุณสามารถเข้าถึงโค้ดได้ จึงสามารถแนะนำการแก้ไขหรือส่งแพตช์ได้ง่ายขึ้น
ขอบคุณสำหรับการอ่านสิ่งนี้!





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)