Fix Pagenation SQL Injection "SQL syntax; check the manual" di webserver Apache GNU/Linux


Assalamualaikum Wr.Wb...
dengan diberikan nikmat dan rezeki dari Allah SWT, saya Mr.Gagaltotal666 akan
berbagi kepada anda yaitu tentang Fix Pagenation SQL Injection
"SQL syntax; check the manual" di webserver Apache GNU/Linux.

ketika saat saya iseng melihat scanning dari acunetix
terdapat ada nempak celah mirip SQL Injection
yaitu terdapat query sintak SQL error, contoh seperti ini

SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-9, 9'


error ini terdapat ada sintak SQL yang terkena limit menjadi 0
yang terconvert int, contoh seperti ini saat di pagenation nya

$ www.target.com/page-"
$ www.target.com/page-'


contoh sintak PHP SQL error nya seperti ini

$jumlah  = mysqli_num_rows($jumlah_record);
$halaman = ceil($jumlah / $batas);

$page    = (isset($_GET['hal'])) ? (int)$_GET['hal'] : 1;
$mulai   = ($page - 1) * $batas;

jadi kita hanya menambal dibagian variabel page simbol lebih dari <
sebenarnya itu hanya sintak PHP SQL error yang terkena limit
dari query MySQL, dan ternyata saya tes SQL injection manual tidak dapat
maupun di Bypass Waf pun juga sama...

contoh sintak tambal nya seperti ini

$jumlah  = mysqli_num_rows($jumlah_record);
$halaman = ceil($jumlah / $batas);
$page    = (isset($_GET['hal'])) ? (int)$_GET['hal'] : 1;

$page    = ($page < 1)? 1: $page;
$mulai   = ($page - 1) * $batas;


dan jangan lupa tambahkan mysqli_real_escape_string
dan setelah dicoba kembali problem sintak Error selesai...


oke mungkin itu saja mengenai SQL sintak Error....

terimakasih untuk [ihvan] teman saya yang sudah membantu
mengasih referensi patch/tambal bug nya...

kalau ada kesalahan dan kekurangan nya
mohon berikan masukan nya ya...

sekian dan semoga bermafaat...

Wasalamualaikum Wr.Wb...

Post a Comment

0 Comments