==========
พวกช่องโหว่ path disclosure (มันมีหลายชื่อเรียกนะ) ความหมายสั้นๆ ก็คือ
บัคที่มีการแสดง error message ต่างๆ นั่นเอง
ซึ่งจากข้อมูล error message ต่างๆ นี้
ก็จะแสดงให้ attacker (หรือ hacker) เห็นพวก username, และ folder ต่างๆ (information)
และนำไปใช้ประโยชน์ในการโจมตี (หรือแฮก) เว็บได้นั่นเอง
เช่น brute force ssh, brute force sql login หรือ หา information ต่างๆ จาก error massage ที่ได้
==========
ยกตัวอย่าง path disclosure จากบัค PMASA-2012-2
(phpmyadmin local path disclosure vulnerability)
bug : https://github.com/phpmyadmin/phpmyadmin/blob/d17fba309c11bcda59d74f238d75a56c543393f0/show_config_errors.php
diff patch : https://github.com/phpmyadmin/phpmyadmin/commit/c51817d3b8cb05ff54dca9373c0667e29b8498d4#diff-623df9196ca4b1c790ac2bece157a712
จะเห็นว่าไฟล์ show_config_errors.php
ได้มีการเรียกใช้ ฟังชั่น "require CONFIG_FILE;" (บรรทัดที่ 17)
ซึ่ง CONFIG_FILE ถูก define ไว้เป็น ./config.inc.php
ซึ่งถ้าเว็บเป้าหมายไม่มีไฟล์ ./config.inc.php
ก็จะทำให้ เปิดไฟล์ไม่ได้ ซึ่งก็จะทำให้เกิด error message ขึ้นมานั่นเอง
เช่น
hxxp://samuiforsale.com/phpmyadmin/show_config_errors.php
hxxp://adsovo.com/phpMyAdmin/show_config_errors.php
hxxp://mekonecology.net/phpmyadmin/show_config_errors.php
hxxp://whatels.net/phpmyadmin/show_config_errors.php
ภาพปลากรอบ
วิธีป้องกัน
- update cms, เว็บ ที่ใช้ให้ เป็น version ใหม่เสมอๆ
- ตรวจเช็ค code ให้ดีๆ (programmer ควรรอบคอบหน่อย)
*เพราะ ผมก็ยังเห็นเว็บ ธนาคาร มี error พวกนี้ อยู่เหมือนกัน
- ปิดการแสดง error message ในเครื่อง product
ชื่ออื่นๆ
- Full Path Disclosure (FPD)
- Local Path Disclosure (LPD)
==========
ปล. พยายามเขียน หล่อๆ และ หลีกเลี่ยง คำว่า เอาไปแฮกชาวบ้าน ได้เท่านี้ว่ะครับ ^^"
Friday, November 15, 2013
Monday, November 11, 2013
การใช้ torrent client ใน tracker ต่างๆ ทำ ddos ทาง UDP protocal
[2600 Admin] P2P threat *0* http://www.lifelock.com/education/id-theft-types/file-sharing/ http://iptps06.cs.ucsb.edu/papers/Liogkas-BitTorrent06.pdf เกิดขึ้นจริงกับ torrent protocol ได้ไหมหว่า evil peer สามารถโหลดไฟล์นอกเหนือจากที่จะแชร์กัน.. seed ไฟล์หนังแต่ดันกลายเป็น เปิดให้ peer โหลดไฟล์ข้อมูลอื่น ๆ บนเครื่อง [ตาเล็ก วินโด้เก้าแปดเอสอี] ถ้า torrent ไฟล์ จะเป็น tracker/?info_hash=sha1(contentทั้งหมดของfile){40ตัว} ปัญหาคือ จะรู้ได้ไง ว่า sha1 ของไฟล์ เป็นอะไร อธิบาย ใหม่ๆ เอา แบบ ปกติ ก่อนนะ [2600 Admin] evil peer นอกจากจะโหลดไฟล์อื่นจากเครื่อง leech ได้แล้วยัง manipulate bandwidth ใช้เป็น ddos farm ได้ด้วย http://torrentfreak.com/bottorrent-using-bittorrent-as-a-ddos-tool-101229/ [ตาเล็ก วินโด้เก้าแปดเอสอี] - step (1.) torrent client ส่ง info_hash ไปหา tracker (port 80) เพื่อขอ ข้อมูล peer (ip:port {return มาเป็น bencode}) - step (2.) tracker ส่ง peer กลับมา (bencode {status{array[peer:port],}}) - step (3.) torrent client ส่ง UDP วิ่งไปคุยกับ peer (ip:port) ที่ได้มา ช่วงนี้ มันจะทำ checksum กันเอง .. แล้วมันก็จะโหลดไฟล์ กันจาก Info_hash นั่นแหละ (ตรงนี้ ไม่ได้ แงะ .. packet แม่งวิ่งเยอะจัด) ======= ทีนี้ มาดู farm ddos (udp) ก็คือ ส่ง info_hash ไปขอ peer จาก tracker (ง่ายๆ คือ ไป list ip:port มา) อ่อๆ ผิดๆ เอาใหม่ๆ ทีนี้ มาดู farm ddos (udp) ก็คือ ส่ง info_hash ไปขอ peer จาก tracker โดย ยัด header ไปว่า มาจาก proxy (x-forward-for) ซึ่ง คือ ip เป้าหมาย ทีนี้ ก็ยัดไป ทุกไฟล์ที่มีใน tracker เลย .... ทีนี้ เดี๋ยว พวก peer ที่มีอยู่ใน tracker มันมาถล่มเอง ทุกๆ 60วิ [2600 Admin] กูเกิลดูเจอว่ามีพรีเซ้นในงาน usenix ด้วย รูปหน้า 2 ทำให้เข้าใจง่ายขึ้น https://www.usenix.org/legacy/event/sruti07/tech/full_papers/eldefrawy/eldefrawy.pdf [ตาเล็ก วินโด้เก้าแปดเอสอี] <--- เขียน code ระบบ piratepeer ไว้ ผ่านไป 2 ปี แล้ว แงะ กระจุย เหลือแค่ check sum ที่วิ่งใน UDP อ่ะ
Labels:
torrent ddos,
udp ddos
Thursday, November 7, 2013
fix unable to resolve host address in centOS6.4
เวลาลง centOS ใหม่ๆ จะมีปัญหา เรื่อง dns
ประมาณว่า เวลา wget จะเจอข้อความราวๆ
วิธีแก้ คือ ตั้ง dns ให้ เครื่อง
ผมก็ลักไก่ใช้ของ google ซะเบย ^^"
กรณี network ไม่ทำงานตั้งแต่ตอน boot ให้ตั้ง
แล้วก็
ประมาณว่า เวลา wget จะเจอข้อความราวๆ
Resolving github.com... failed: No address associated with hostname.
วิธีแก้ คือ ตั้ง dns ให้ เครื่อง
ผมก็ลักไก่ใช้ของ google ซะเบย ^^"
echo "DNS1=8.8.8.8" >> /etc/sysconfig/network-scripts/ifcfg-eth0 service network restart
กรณี network ไม่ทำงานตั้งแต่ตอน boot ให้ตั้ง
/etc/sysconfig/network-scripts/ifcfg-eth0ตรง
ONBOOT="yes"
แล้วก็
chkconfig network on
Labels:
centos,
dns,
unable to resolve host address
Install Python 2.7.6 on Centos 6.5 x64
Install requirements
yum -y groupinstall 'Development Tools' yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel wget
Download and compile python 2.7.6
cd /tmp curl -O http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz tar xfz Python-2.7.6.tgz cd Python-2.7.6 ./configure --with-threads --enable-shared make && make altinstall
Configure libraries: (shared libraries: libpython2.7.so.1.0)
ln -s /usr/local/bin/python2.7 /usr/bin/python2.7 echo "/usr/local/lib/python2.7" > /etc/ld.so.conf.d/python27.conf echo "/usr/local/lib" >> /etc/ld.so.conf.d/python27.conf ldconfig
Test python2.7
python2.7Result : [type exit() to exit]
Python 2.7.6 (default, Dec 23 2013, 17:36:30) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Install easy_install 2.7, pip 1.4.1 and virtualenv 1.10.1
cd /tmp wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg --no-check-certificate sh setuptools-0.6c11-py2.7.egg easy_install-2.7 pip easy_install-2.7 virtualenv
Test pip
pip listResult
pip (1.4.1) setuptools (0.6c11) virtualenv (1.10.1) wsgiref (0.1.2)
Test pip install
pip install cryptoResult
[root@localhost tmp]# pip install crypto Downloading/unpacking crypto Downloading crypto-1.1.0.tar.gz Running setup.py egg_info for package crypto Downloading/unpacking rsa (from crypto) Downloading rsa-3.1.2.tar.gz Running setup.py egg_info for package rsa warning: no files found matching 'README' Downloading/unpacking pyasn1>=0.1.3 (from rsa->crypto) Downloading pyasn1-0.1.7.tar.gz (68kB): 68kB downloaded Running setup.py egg_info for package pyasn1 Installing collected packages: crypto, rsa, pyasn1 Running setup.py install for crypto Running setup.py install for rsa warning: no files found matching 'README' Installing pyrsa-encrypt-bigfile script to /usr/local/bin Installing pyrsa-encrypt script to /usr/local/bin Installing pyrsa-verify script to /usr/local/bin Installing pyrsa-sign script to /usr/local/bin Installing pyrsa-priv2pub script to /usr/local/bin Installing pyrsa-decrypt script to /usr/local/bin Installing pyrsa-keygen script to /usr/local/bin Installing pyrsa-decrypt-bigfile script to /usr/local/bin Running setup.py install for pyasn1 Successfully installed crypto rsa pyasn1 Cleaning up... [root@localhost tmp]#
ex01.py (use #!/usr/bin/python2.7 for select python version 2.7)
#!/usr/bin/python2.7 print "windows98SE"
Labels:
install python 2.7.6,
linux,
python