Jump to content
php.lv forumi

[PHP]Draugiem.lv runā sadaļā tekstu speršana


Online18

Recommended Posts

Vārdsakot jums ir pašiem sava lapa iekš dr.lv un jums ir slinkums kaut ko rakstīt runā sadaļā tad tagad ir pavisam viegli nospert citu idejas viss, kas nepieciešams mapīte iekš /www mapes un 3 script faili.

 

index.php

<?
/*
LOAD CONFIG FILE
*/
require('config.php');
/*
DO NOT TOUCH THE CODE BELOW
*/
$draugi->get_lapas();
shuffle($draugi->lapas);
foreach($draugi->lapas as $lapa)
{
if($lapa != '/caks-bass/')
 $draugi->get_ieraksti($lapa);
}
?>

 

config.php

<?php
/*
REQUIRE
*/
require 'class.drlv.php';
/*
SITE SETTINGS
*/
$user = array('e-pasts', 'parole');
$page_id = 13339110;
$page_url = '/caks-bass/';
if(!defined('STOP_LOGIN'))
$draugi = new drlv($user,  $page_id, $page_url);
?>

 

 

class.drlv.php

<?php
class drlv
{
 private $cookie = '';
 public $header;
 private $user = array();
 private $lpp = 2;
 public $lapas = array();
 public $page_id = 0 ;
 private $posted = 0;
 public $page_url;
 public $user_id = 0;
 private $ref = '';
 public $check_login = true;
 public $logged_in = false;

 function __construct($user, $page_id, $page_url, $check = true)
 {
define(DIR, dirname(__FILE__));
$this->check_login = $check;
$this->user = $user;
$this->page_id = $page_id;
$this->page_url = $page_url;
$this->logged_in = $this->login();
if(!$this->logged_in && $this->check_login)
 die('Nepareizi lietotāja dati.');

 }

  function return_user_ids($data, $use_idx = true)
 {
 $friends = array();
 preg_match_all('/sm_([0-9]+)\./', $data, $id);
 foreach($id[1] as $juzer)
 {
  if(!in_array($juzer, $friends) AND $juzer != $this->user_id)
  {
if($use_idx)
$friends[$juzer] = $juzer;
else
$friends[] = $juzer;
  }
 }
 return $friends;
 }

  function get_hash($data = false)
 {
if(!$data)
 $data = $this->get('http://www.draugiem.lv');
preg_match_all('/nm_([^\"]+)\" value\=\"([^\"]+)\"/is', $data, $hash);
return array('nm_' . $hash[1][0], $hash[2][0]);
 }

 function get_lapas()
 {
for($i=1;$i<=$this->lpp;$i++)
{
 	$url = sprintf('http://www.draugiem.lv/lapas/?action=favorites&pg=%d', $i);
 	$data = $this->get($url);
 	preg_match_all('/\<div class\=\"userBox\"\> \<a class\=\"userPicture\" href\=\"([^\"]+)\"/', $data, $matches);
 	foreach($matches[1] as $nr => $index)
 	{
 	if($index != $this->page_url)
 $this->lapas[] = $index;
 	}
 	sleep(2);
}
 }

 function write_runa_teksts($url, $id, $text)
 {

 list($h, $v)= $this->get_hash($this->get('http://www.draugiem.lv'));

$data = array(
 	'say[add][reply]'=>'',
 	'action'=>'add_comment',
 	'say[add][text]'=>$text,
 	'addCommentUid'=>$id,
 	$h=>$v
);


  return $this->post($url, $data);
 }

 function post_teksts($text, $id)
 {
if($this->posted > 50)
{
 die('DONE');
 sleep(10);
}

$url = 'http://www.draugiem.lv'.$this->page_url.'say/';

  $this->write_runa_teksts($url, $this->page_id, $text);

$this->posted++;
 }

 function get_ieraksti($lapa)
 {
$skaits = rand(10, 100);
$cur = 0;
for($i=1;$i<=4; $i++)
{
 	$url = sprintf('http://www.draugiem.lv%ssay/index?pg=%d', $lapa, $i);
 	$data = $this->get($url);
 	preg_match_all('/id\=\"sayPost([0-9]+)\"\>((?:(?!\"body).)*)\"body\"\>((?:(?!\<\/div\>).)*)/is', $data, $ieraksts);
 	foreach($ieraksts[1] as $nr => $posta_id)
 	{
  $teksts = $this->parse_text($ieraksts[3][$nr]);
  if(!preg_match('/\</', $teksts))
  {
 $cur++;
$teksts = trim(htmlspecialchars_decode(urldecode($teksts)));
//$teksts = utf8_encode($teksts);
$this->post_teksts($teksts, $posta_id);
sleep(2);
  }
 	}
 	sleep(2);


}
 }
 function parse_text($text)
 {
$text = preg_replace('/\<img src\=\"([^\"]+)\" class\=\"smiley\" alt\=\"([^\"]+)\" \/\>/is', '$2', $text);
$text = preg_replace('/\<a href\=\"\/say\/click\.php\?url\=((?:(?!\&uid).)*)&uid\=([0-9]+)&pid\=([0-9]+)\" target\=\"_blank\" class\=\"externalUrl\"\>([^\<]+)\<\/a\>/is', '$1', $text);  
return $text;
 }

 function login()  // notiek logins
 {
list($username, $password) = $this->user;
$open = $this->get('http://iphone.draugiem.lv/');
$cookie_segments = explode(';', str_ireplace('Set-Cookie: ', '', $this->header['5']));
$this->cookie = $cookie_segments[0];
preg_match_all('/hash\" value\=\"([^\"]*)\"/', $open, $matches);
$hash = $matches[1][0];
$data = array('email'=>$username,
'password'=>$password,
'domain'=>'iphone.draugiem.lv',
'login'=>'Ienākt',
'hash'=>$hash,
'redir'=>'/',
'lang'=>'lv',
);
$data = $this->post('http://secure.draugiem.lv/login/', $data);
$cookie_segments = explode(';', str_ireplace('Set-Cookie: ', '', $this->header['9']));
$this->cookie = $cookie_segments[0];
$data = $this->get('http://www.draugiem.lv/');
$ids = $this->return_user_ids($data, false);
$this->user_id = $ids[0];
return $this->user_id > 10000 ? true:false;
 }


 function post($url, $data = array())
 {
$options = array('http' => array(
  	'method'  => 'POST',
  	'header'=>"Accept-language: en\r\n" .
  	'Referer: ' . $this->ref . "\r\n" .
  	'Cookie: ' . $this->cookie,
  	'content' => http_build_query($data)
));
$context  = stream_context_create($options);
$res = @file_get_contents($url, false, $context);
$this->header = $http_response_header;
$this->ref = $url;
return $res;
 }

 function get($url, $data = array())
 {
$options = array('http' => array(
  	'method'  => 'GET',
  	'header'=>"Accept-language: en\r\n" .
  	'Referer: ' . $this->ref . "\r\n" .
  	'Cookie: ' . $this->cookie,
  	'content' => http_build_query($data)
));
$context  = stream_context_create($options);
$res = @file_get_contents($url, false, $context);
$this->header = $http_response_header;
$this->ref = $url;
return $res;
 }

function logout()
 {
$this->get('http://iphone.draugiem.lv/logout.php');
$this->cookie = '';
 }

 function __destruct()
 {
$this->logout();
 }

}
?>

 

Ja jūs zinat vēl kādu noderīgu script priekš dr.lv tad lūdzu padalaties ar mani iekš šī paša topika sākam kodēt dažādākās lietas priekš draugiem[dot]lv

Edited by Online18
Link to comment
Share on other sites

Izskatās ka draugu logins čeko refereri bet neiespringst uz user agent esamību. Tad jau boti laikam atļauti .trollface. Bet vispār jebkāda datu ievākšana neizmantojot API ož pēc visai nelegāla pasākuma ar nepatikšanām,jeb tomēr kļūdos? :)

Link to comment
Share on other sites

Vienkārši pašam ir interese pa retam kaut ko automatizēti pačekot bet neesmu riskējis to darīt,pieņemot ka pie mums lv pietiek automatizēti nomainīt lapai ID parametru,lai kļūtu par noziedznieku (Neo gadījums). Ir kāds pētījis kā pie mums šādas darbības tiek reglamentētas vispār? Sanāk ka mierīgi varu uzlaist cURL grabberi dajebkur un man neviens par to nevar piesieties ja vien saits nepieder kādai valsts iestādei? Kaut kā vairs nav ticības ka viss ir tik vienkārši,tāpēc prasīju vai kļūdos.

Link to comment
Share on other sites

Pirms kaut ko sāc darīt, drošības pēc palasi krimināllikumu - tur visai smuki ir atrunātas sliktās lietas. Kamēr tu maini ID ar rociņām, tikmēr viss ir forši. Ja tu uzraksti skriptu, tad jau tev var sākt piesieties. No otras puses - ja tu raksti zirnekli, kas staigā pa tev pieejamiem linkiem - visam vajadzētu būt kārtībā (kā nekā pēc šāda principa strādā meklētāji - Google, Bing, utt.).

 

Problēmas, piemēram, rodas gadījumos, ja tu sāc kaitēt portāla darbībai. Piemēram tu ievāc lietotāju vārdus un paroles (ar kādu phishing lapu) un tad sāc viņu vārdā kaut ko rakstīt portālā. Šādā gadījumā tas smuki klasificējas zem krimināllikuma 241. panta:

 

241.pants. Patvaļīga piekļūšana automatizētai datu apstrādes sistēmai

 

(1) Par patvaļīgu (bez attiecīgas atļaujas vai izmantojot citai personai piešķirtas tiesības) piekļūšanu automatizētai datu apstrādes sistēmai vai tās daļai, ja tas saistīts ar datu apstrādes sistēmas aizsardzības līdzekļu pārvarēšanu un ja ar to radīts būtisks kaitējums, —

 

soda ar brīvības atņemšanu uz laiku līdz trim gadiem vai ar piespiedu darbu, vai ar naudas sodu līdz piecdesmit minimālajām mēnešalgām.

 

(2) Par tādām pašām darbībām, ja tās izdarītas mantkārīgā nolūkā vai izraisījušas smagas sekas, —

 

soda ar brīvības atņemšanu uz laiku līdz pieciem gadiem vai ar arestu, vai ar piespiedu darbu, vai ar naudas sodu līdz simt minimālajām mēnešalgām, konfiscējot mantu vai bez mantas konfiskācijas.

 

(3) Par šā panta pirmajā daļā paredzētajām darbībām, ja tās vērstas pret valsts informācijas sistēmām, —

 

 

soda ar brīvības atņemšanu uz laiku līdz astoņiem gadiem vai ar naudas sodu līdz simt astoņdesmit minimālajām mēnešalgām.

 

Runājot par grabberiem - lai arī tas nav likumdošanā atrunāts, būtu pareizi, ka tu ievērotu /robots.txt saturā minētos noteikumus un .. vairumā gadījumu uz saturu tomēr darbojas kaut kādas autor/īpašumtiesības.

Link to comment
Share on other sites

Nu tik tālu jauki,bet būtu interesanti palasīties pie reizes tavu viedokli,kāda ir draugiem politika attiecībā uz šādām darbībām.Respektīvi ja mans skripts ielogojas profilā un sāk mērķtiecīgi skrāpēt nost teiksim forumu vai domubiedrus.Tad es riskēju

- ne ar ko (kurš tad manus uzķers starp miljoniem citu)

- ne ar ko līdz brīdim kad piemirstu uzlikt sleep

- tikt brīdināts vai reportēts uz CERT par mēģinājumu traucēt servera darbību

- tikt izdzēsts nahren bez brīdinājuma

- dabūt kaut kādu automātisku temp banu

- citas sankcijas?

Kā tur īsti ir? Atļauts ir viss kas nav aizliegts(atrunāts noteikumos)? :)

Link to comment
Share on other sites

Lai kāds nepārprastu,gan piemetināšu,ka jautājums nav par ļaunprātīgām darbībām(bilžu vai profilu datu zagšana,spams,etc),kas būtu sodāms pasākums,bet,kā zināms-katras vietnes administrācija arī,ieraugot botu,to var interpretēt pa savam,un negribētos palikt bez profila dēļ tā,ka esmu ievācis sev interesējošu nosacīti publisku informāciju.Domāju ka ne man vienam būtu interesanti uzzināt,vai boti pie kaut kādiem nosacījumiem ir ok vai nav attiecībā uz draugiem.

Edited by 404
Link to comment
Share on other sites

Tātad ir kādam vēl kādas idejas bez anilizēšanas, jo es jau saprotu visi mēs te mākam kaut ko uzkodēt, bet zināšanas nākas arī citreiz pielietot nelabām lietām ja to, protams, māk, bet ja nemāk nu tad neko tikai lasam citu veidotos scriptus un izsakam replikas utt.

 

Visi kas vēlas iesaistīties man top tā teikt pat projektiņš kur tīri tiek izveidoti priekš dr.lv dažādi skripti, lai ar viņiem varētu manipulēt utt. Ja esat gatavi kaut ko palīdzēt, jo es nēesmu nekāds koderis man ir pirmais gads reāli tikai!

 

Tātad ar mani varat sazināties caur skype: boss3314 vai dr.lv portālā: Spied Te

Link to comment
Share on other sites

Kā ieraudzīju lietotāja Skype niku, sapratu, kurš tas ir. Šim lietotājam ir vājas zināšanas @ PHP. Viņš izmanto citu veidotus skriptus, arī šajā gadījumā zinu, kādus. Kaklz arī gan jau zin, ja ir lasījis PM no manis (šis nav tas pats cilvēks).

 

Bet runājot par tēmu, es domāju, ka to var darīt, kamēr tas netraucē serveru darbību un nepārkāpj citu cilvēku autortiesības.

Link to comment
Share on other sites

Kā ieraudzīju lietotāja Skype niku, sapratu, kurš tas ir. Šim lietotājam ir vājas zināšanas @ PHP. Viņš izmanto citu veidotus skriptus, arī šajā gadījumā zinu, kādus. Kaklz arī gan jau zin, ja ir lasījis PM no manis (šis nav tas pats cilvēks).

 

Bet runājot par tēmu, es domāju, ka to var darīt, kamēr tas netraucē serveru darbību un nepārkāpj citu cilvēku autortiesības.

 

Tieši tā un es jau teicu, ka vājas tikai pirmais gads!

Link to comment
Share on other sites

  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...