� Back

� WWW.SPYROZONE.TK �

 

[139]. Skrip MenTaRiSMS-2.03

    

  

------------------------------------------------------

Author  : Uliansyah

Contact : auliansyah@gmail.com

CopyLEFT (c) 2006 www.spyrozone.tk All Rights Reserved

� 01/08/2006  22:50:50 WIB

------------------------------------------------------

 

Mohon maaf nih sama temen2 yang menggunakan skrip mentarisms, versi yang 2.02 itu saya buat nggak pake test dulu, cuman hasil dari perasaan aja.. Ternyata selain merubah DirectoryIndex, klub-mentari juga mengaktifkan HTTP Referrer untuk halaman sms/xt_send_sms2.php.

Nah, versi 2.03 ini sudah saya coba dan sukses.. Plus fitur tambahan untuk mendeteksi apakah kuota sms telah terlampaui.

# ./mentarisms-2.03.txt 628567074554
test kirim dari mentarisms skrip versi 2.03 nih.. Bismillah!
[+] Obtaining SID: 9d84ef9abce1511f8d6e884c7760cecb
[+] Obtaining Mentari number: 6281546031250
[+] Login sukses.
[+] Kirim SMS ke: 628567074554,
[+] Pesan yang akan dikirim: test kirim dari mentarisms skrip versi 2.03 nih.. Bismillah!
[+] Send SMS Sukses.

Skrip selengkapnya:

#!/usr/bin/perl -w
# mentarisms.pl v2.03 by A. Uliansyah <auliansyah@gmail.com>
# Thu, 22 Jun 2006 (Revisi: Mon, 26 Jun 2006)

$username = "username";
$password = "password";

$version = "v2.03";
if (!exists($ARGV[0])) {
print "mentarisms.pl versi $version oleh A. Uliansyah \<auliansyah\@gmail.com\>\n";
print "\tCara penggunaan:\n\t$0 [NOMOR1] [NOMOR2] [NOMOR3] .. [NOMOR10]\n";
print "\tPesan: [Tulis pesan di sini diakhiri dengan Enter]\n";
print "Nomor tujuan [NOMORn] ditulis dalam format internasional,";
print "contoh: 62815123456\nContoh: echo \"sms dari $0 versi $version nih\" | $0 628123456789\n";
exit;
}
if (exists($ARGV[10])) {
print "$0 hanya dapat mengirimkan sms secara bersamaan ke 10 nomor saja\n";
exit;
}

foreach (@ARGV) {
$recipient .= $_.", ";
}
chomp($recipient);

$message = <STDIN>;
chomp($message);

use LWP::UserAgent;
use HTTP::Cookies;
$ua = LWP::UserAgent->new;
push @{ $ua->requests_redirectable }, 'POST';
$ua->env_proxy;
$ua->agent("$0/$version");
$ua->agent($ua->agent." Mozilla/8.0"); # pretend we are very capable browser
$ua->cookie_jar(HTTP::Cookies->new(file => "mentarisms\@cookies.txt", autosave => 1));

#looking for sid
my $sidcheck = HTTP::Request->new(GET => 'http://www.klub-mentari.com/index.php');
$sidcheck->header('Accept' => 'text/html');
my $sidresponse = $ua->request($sidcheck);
if ($sidresponse->is_success) {
#print $sidresponse->as_string;
  my $sidmulai = index($sidresponse->as_string, "PHPSESSID");
  my $potong = substr($sidresponse->as_string, $sidmulai+10);
  my $sidselesai = index($potong, ";");
  $sid = substr($potong, 0, $sidselesai);
  print "[+] Obtaining SID: $sid\n";
}
else { die "Error: ". $sidresponse->status_line; }

#login
my $req = HTTP::Request->new(POST => 'http://www.klub-mentari.com/login.php');
$req->content_type('application/x-www-form-urlencoded');
$loginPost = 'username='.$username;
$loginPost .= '&password='.$password;
$loginPost .= '&sid='.$sid;
$loginPost .= '&redirect=sms/send_sms2.php&login=Login';
$req->content($loginPost);

my $res = $ua->request($req);
if (($res->is_success) && ($res->as_string =~ /Selamat datang $username/)) {
  #print $res->as_string;
  my $mentarimulai = index($res->as_string, "name=\"username\"");
  my $mentaripotong = substr($res->as_string, $mentarimulai+23);
  my $mentariselesai = index($mentaripotong, "\"");
  $mentari = substr($mentaripotong, 0, $mentariselesai);
  print "[+] Obtaining Mentari number: $mentari\n";
  print "[+] Login sukses.\n";
  print "[+] Kirim SMS ke: $recipient\n";
  print "[+] Pesan yang akan dikirim: $message\n";
}
elsif (($res->is_success) && ($res->as_string =~ /Selamat datang $username/))
{ die "[-] Login Error: Wrong Username and Password (unmatch maybe?)\n"; }
else {  die "[-] Login Error: ". $res->status_line ."\n"; }

#send sms
$submit = "Kirim SMS";
$req = HTTP::Request->new(POST => 'http://www.klub-mentari.com/sms/xt_send_sms2.php');
$req->content_type('application/x-www-form-urlencoded');
$kirimPost = 'recipient='.$recipient;
$kirimPost .= '&message='.$message;
$kirimPost .= '&jml_kar=125';
$kirimPost .= '&username='.$mentari;
$kirimPost .= '&user_id=&submit='.$submit;
$req->content($kirimPost);
$req->header('Referrer' => 'http://www.klub-mentari.com/sms/send_sms2.php');

$res = $ua->request($req);
#  if ($res->is_success) { print $res->as_string; }
#  else { print "Error: ". $res->status_line; }
if (($res->is_success) && ($res->as_string =~ /masuk antrian/))
{ print "[+] Send SMS Sukses.\n"; }
elsif (($res->is_success) && ($res->as_string =~ /melebihi/))
{ die "[-] SMS telah melebihi kuota.\n"; }
else { die "[-] Error Sending SMS: ". $res->status_line ."\n"; }

# e0f

Terimakasih untuk wawan yang sudah buat versi cgi-bin mentarisms. Source mentari sms versi cgi-bin:
 

#!/usr/bin/perl

$username = "bodi";
$password = "senang";
$mentari = "6281578526710";

sub ReadParse
{
local (*in) = @_ if @_;
local ($i, $loc, $key, $val);

$MultipartFormData = $ENV{'CONTENT_TYPE'} =~ /multipart\/form-data; boundary=(.+)$/;

if($ENV{'REQUEST_METHOD'} eq "GET")
{
$in = $ENV{'QUERY_STRING'};
}
elsif($ENV{'REQUEST_METHOD'} eq "POST")
{
binmode(STDIN) if $MultipartFormData & $WinNT;
read(STDIN, $in, $ENV{'CONTENT_LENGTH'});
}


if($ENV{'CONTENT_TYPE'} =~ /multipart\/form-data; boundary=(.+)$/)
{
$Boundary = '--'.$1; # please refer to RFC1867
@list = split(/$Boundary/, $in);
$HeaderBody = $list[1];
$HeaderBody =~ /\r\n\r\n|\n\n/;
$Header = $`;
$Body = $';
$Body =~ s/\r\n$//; # the last \r\n was put in by Netscape
$in{'filedata'} = $Body;
$Header =~ /filename=\"(.+)\"/;
$in{'f'} = $1;
$in{'f'} =~ s/\"//g;
$in{'f'} =~ s/\s//g;

# parse trailer
for($i=2; $list[$i]; $i++)
{
$list[$i] =~ s/^.+name=$//;
$list[$i] =~ /\"(\w+)\"/;
$key = $1;
$val = $';
$val =~ s/(^(\r\n\r\n|\n\n))|(\r\n$|\n$)//g;
$val =~ s/%(..)/pack("c", hex($1))/ge;
$in{$key} = $val;
}
}
else
{
@in = split(/&/, $in);
foreach $i (0 .. $#in)
{
$in[$i] =~ s/\+/ /g;
($key, $val) = split(/=/, $in[$i], 2);
$key =~ s/%(..)/pack("c", hex($1))/ge;
$val =~ s/%(..)/pack("c", hex($1))/ge;
$in{$key} .= "\0" if (defined($in{$key}));
$in{$key} .= $val;
}
}
}

sub kirim {
$recipient = $in{'r'};

chomp($recipient);

$message = $in{'m'};


chomp($message);

print "Kirim SMS ke:<b> $recipient </b>";
print "<br>";
print "Pesan:<b> $message </b>";

use LWP::UserAgent;
use HTTP::Cookies;
$ua = LWP::UserAgent->new;
$ua->env_proxy;
$ua->agent("$0/0.1 " . $ua->agent);
$ua->agent("Mozilla/8.0"); # pretend we are very capable browser
$ua->cookie_jar(HTTP::Cookies->new(file => "lwpcookies.txt", autosave => 1));

#looking for sid
my $sidcheck = HTTP::Request->new(GET => 'http://www.klub-mentari.com/');
$sidcheck->header('Accept' => 'text/html');
my $sidresponse = $ua->request($sidcheck);
if ($sidresponse->is_success) {
#print $sidresponse->as_string;
my $sidmulai = index($sidresponse->as_string, "PHPSESSID");
my $potong = substr($sidresponse->as_string, $sidmulai+10);
my $sidselesai = index($potong, ";");
$sid = substr($potong, 0, $sidselesai);
print "\n";
}
else { print "Error: ". $sidresponse->status_line; }


#login
my $req = HTTP::Request->new(POST => 'http://www.klub-mentari.com/login.php');
$req->content_type('application/x-www-form-urlencoded');
$req->content('username='.$username.'&password='.$password.'&sid='.$sid.'&redirect=index.php&login=Login');

my $res = $ua->request($req);
# if ($res->is_success) { print $res->as_string; }
# else { print "Error: ". $res->status_line; }
if ($res->is_success) { print "Login sukses.\n"; }
else { print "<br>"; }

#send sms
$submit = "Kirim SMS";
$req = HTTP::Request->new(POST => 'http://www.klub-mentari.com/sms/xt_send_sms2.php');
$req->content_type('application/x-www-form-urlencoded');
$req->content('recipient='.$recipient.'&message='.$message.'&jml_kar=125&username='.$mentari.'&user_id=&submit='.$submit);

$res = $ua->request($req);
# if ($res->is_success) { print $res->as_string; }
# else { print "Error: ". $res->status_line; }
if ($res->is_success) { print "Status: <b>Send SMS Sukses.</b>"; }
else { print "Status: <b>Error Sending SMS: ". $res->status_line ."</b>"; }

# e0f

}

&ReadParse;
print "Content-type: text/html\n\n";
print "<html>\n";
print " <head><title>sms</title>\n";
print " <body>\n";
$Action = $in{'k'};
if ($Action eq 'check')
{
&kirim;
}
print <<END;
<code>
<center>
<form method="post" name="myf" onSubmit="return ValidateForm()" action="mentari.pl">
<table border="0">
<tr>
<td>No. HP</td>
<td><input type="hidden" size="20" name="k" value="check"><input type="text" size="20" name="r" value="628">&nbsp&nbsp Format: 628xxxxxxx</td>
</tr>
<tr>
<td>Pesan</td>
<td><textarea name="m" rows=5 cols=35 wrap="physical" onKeyDown="textCounter(document.myf.m,document.myf.remLen1,120)"
onKeyUp="textCounter(document.myf.m,document.myf.remLen1,120)"></textarea>
<br>
<input readonly type="text" name="remLen1" size="3" maxlength="3" value="120">
<font size="2">characters left </font></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Kirim"></td>
<td>&nbsp;</td>
</tr>
</table>
</form>
</center>

<SCRIPT LANGUAGE="JavaScript">

var digits = "0123456789";

var phoneNumberDelimiters = "";

var validWorldPhoneChars = phoneNumberDelimiters + "";

var minDigitsInIPhoneNumber = 10;


function textCounter(field,cntfield,maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
cntfield.value = maxlimit - field.value.length;
}


function isInteger(s)
{ var i;
for (i = 0; i < s.length; i++)
{
// Check that current character is number.
var c = s.charAt(i);
if (((c < "0") || (c > "9"))) return false;
}
// All characters are numbers.
return true;
}

function awal(s)
{ var i;
var x="";
for (i = 0; i < 2; i++)
{
// Check that current character is number.
var c = s.charAt(i);
if ((c=="0") || (c=="+")) return false;
x=x+c
}
//if (x !="628") return false;

return true;
}

function stripCharsInBag(s, bag)
{ var i;
var returnString = "";
// Search through string's characters one by one.
// If character is not in bag, append to returnString.
for (i = 0; i < s.length; i++)
{
// Check that current character isn't whitespace.
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && awal(s) && s.length >= minDigitsInIPhoneNumber);
}

function ValidateForm(){
var Phone=document.myf.r
var Msg=document.myf.m

if ((Phone.value==null)||(Phone.value=="")){
alert("Masukan nomer hp anda")
Phone.focus()
Phone.value="628"
return false
}
if (checkInternationalPhone(Phone.value)==false){
alert("Format nomor hp salah")
Phone.value=""
Phone.focus()
Phone.value="628"
return false
}
if ((Msg.value==null)||(Msg.value=="")){
alert("Masukan pesan anda")
Msg.focus()
return false
}
return true
}
</script>
<code>
END
print "</body></html>\n";


Dari pemberitahuan hetta -- hpradianto@gmail.com, ada dua situs yang menggunakan skrip mentarisms yaitu: http://www.sindikat.net/sms dan http://www.punya.dd.am/sms/cgi-bin/sms.pl Terimakasih atas kepercayaannya menggunakan skrip saya!

   

/* ------------------------------|EOF|------------------------------ */

 

   � Back

� WWW.SPYROZONE.TK �