묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
검색 기능 sql인젝션 질문이 있습니다.
안녕하세요. 강의해주셔서 감사합니다.가끔씩 연습을 하다보면 % 만 입력했을 시 전체데이터가 뱉어지는 경우가 있는데,배운대로,SELECT * FROM board WHERE title like '%검색어%' 라면SELECT * FROM board WHERE title like '%%%'가 될 것 같습니다.이게 어떤 원리로 전체 데이터가 출력이 되는 건지 궁금합니다. 입력한 %가 메타문자(와일드카드)로 인식되어 전체출력이 되는 걸까요?그리고 싱글쿼터만 넣어도 전체 데이터가 출력되는 경우도 있던데 이것도 어떤 원리인지 너무 궁금합니다...! 알려주시면 감사하겠습니다.
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
배우기 시작하면서 드는 궁금증
안녕하세요, 이제 막 강의를 신청하고 2시간 가량 들었습니다.초반 두시간 정도는 실습 환경 구축 위주의 내용인데요, 이후 수업에서 배우는 내용에 대해 두 가지 궁금증이 생겨 질문드리게 되었습니다.1. 한정된 분량의 강의 특성상 대체로 많이 사용되는 mysql, mssql, oracle 이 셋 db를 대상으로 수업을 진행하시는 것 같습니다. 혹시 mongo, dynamodb처럼 nosql을 사용하는 웹 어플리케이션의 경우 injection 수행 시 쿼리 문법만 바뀌는건지, 아니면 injection 방법 자체가 바뀌는건지 궁금합니다.2. 현재 초급 수준이라 그런지 게시판을 injection 대상으로 삼아서 실습하는 걸로 예상이 되는데요, 게시판이 없고 회원가입/로그인 창 정도만 있는 웹 어플리케이션도 많은 것으로 알고있습니다. 저는 part1, part2 모두를 수강할 예정인데 게시판이 존재하지않고 회원가입/로그인 폼 정도만 있는 웹 어플리케이션에 대해서도 다양한 공격기법을 배울 수 있게되나요~?감사합니다.
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
컬럼명 기반으로 테이블 개수를 출력
데이터 순차기법 강의에서 len select object_name(object_id) from sys.columns where object_id in(select object_id from sys.objects where type='U') and name like '%jumin%'이구문을 통해 컬럼jumin 을가지고 잇는 테이블 길이를 조회하지만 실제로는 카운트 작업이 필요하다고 생각해서 제가 나름대로 (sql 잘하지는 못하지만 ) 컬럼을 가지고 잇는 테이블 개수를 조회 해볼려고 노력하는데 올바른 코드좀 알려주세요 ㅜㅜ select count(*) from board.sys.objects where type='U' and columns name='jumin'이런식으로 여러번 시도 하는데 오류가 나네요 ㅜㅜ
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
외부 자료 학습중 질문사항-메타데이터 추출 불가한 상황
안녕하세요. 강사님 제가 다른 자료를 통해서 학습을 하다가 질문 사항이 발생했습니다.질문 내용은 진행사항 아래에 질문사항으로 정리한 부분에 있습니다. 해당 자료는 vulnhub에서 제공하는 모의해킹 연습용 이미지이므로 실제 사이트를 대상으로 하는 공격은 진행한 것이 아닙니다.그리고 공격은 제가 개인PC에 구성한 가상 환경내에서만 안전하게 진행하였습니다. [정보 수집 활동으로 알아낸 정보]목적지 IP : 10.0.2.15DBMS : MySQLversion : 4.1.22(Blind SQL Injection 으로 찾아냈습니다.)Database name : webapp(Blind SQL Injection 으로 찾아냈습니다.)[진행사항]-> 해당 Username 입력 받는 곳은 SQL Injectino 취약점이 존재합니다.-> 그래서 SQL Injection 공격이 성공하여 administrator 계정으로 접속하면 위와 같은 화면을 보여 줍니다.-> ping을 쏘아보내는 화면을 보여 줍니다. 이걸 burp suite로 캡처하면 아래와 같습니다.[request 화면]-> burp suite에서 캡처한 request 화면이고[response화면]-> 쿼리 입력이 True(참)일 경우 ping을 보내는 화면 결과를 return하고 [false한 결과를 유도하는 request]-> request를 false를 유도하면[false한 결과를 받은 response]-> ping 관련 응답이 없습니다.-> 11번째 줄을 보면 index.php 로 나옵니다. 이런 상황에서 저는 아래와 같이 SQL Injection 공격 법을 결정하였습니다.Error Based SQL Injection(불가) : ID/PW 입력 창에 싱글쿼터만 입력하면서 Error 발생을 시켜서 DBMS 에러 메시지가 나오는지 확인했으나 나오지 않으므로 Error Based Injection은 불가Union Based SQL Injection(불가) : 입력에 대한 DB의 응답 값이 표현 된 부분이 없는 것 같아서 Union Based SQL Injection 도 사용 불가Blind SQL Injection(사용) : 입력 SQL Injection 구문이 False인 경우 ID/PW 입력 창(index.php), 입력 SQL Injection 구문이 True 일 경우 pingit.php 가 나오므로 Blind SQL Injection으로 MySQL 버전 정보를 얻기로 결정--> 정확히는 Response based Blind SQL Injection (참일 때 pingit.php가 response로 나오고 거짓을 경우에는 index.php가 response에 나오는 걸 이용) 이전에 uname=%27+or+6=length(version())%23 이 response에 pingit.php가 return 되는 걸 보면서 mysql 버전 길이가 6이라는 것을 확인했습니다.[Blind SQL로 MySQL 버전 정보 습득]-> 위의 정보를 intruder를 이용해서 MySQL 버전 정보를 습득 했습니다.(예시-1 : version의 세번째 글자 구하기)-> ascii값 49로 '1' (예시-2: version의 네번째 글자 구하기)-> ascii값 46, '.'(온점) [질문사항]--> table 개수를 검색해보려고 하면 Response는 잘 못된 입력 값을 send했을 때 돌려주는 index.php 화면을 response합니다.--> 제가 request에 넣은 쿼리는 아래와 같습니다.select count(*) from information_schema.tables where table_schema='webapp'(querybox에서 실행한 예시)-> 정상적으로 숫자 비교가 되어서 pingit.it로 response가 돌아올 것이라고 생각 했습니다.-> 테이블이 1개라도 있으면 '0'보다는 크므로 response에 pingit.php가 속한 응답이 올 것으로 생각 했습니다.-> 이런경우는 웹페이지에서 select나 메타데이터 정보를 조회하는 information_schema.tables 같은 것들을 필터링하고 있다고 생각해야 하는지 궁금합니다.-> 그리고 위와 같은 명령어 들을 대체할 수 있는 것들을 검색해 봤는데 찾기가 어려웠습니다.좀 더, 대체 명령어를 잘 찾을 수 있는 Tip 같은게 있는지 궁금합니다.
-
해결됨웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
세션하이제킹에서 태그
세션값을 빼내기위해서 Stored XSS하는 과정에서New Image().src= 를 자바스크립트에서 사용하시는데저 문법과 HTML태그인 <img src=>가 동일하게 사용이 가능한가요?? 외람된 질문이지만<img src=[주소]> 를 안하고 <img src='' onerror=>와 같이 사용하는 이유가 혹시 있을까요..?ㅠ
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
텍스트 인코딩 한국어
18:03 수업부분에 텍스트 인코딩에서 한글로 변경하는것이 안보이는데 어떻게 해야 하나요? 원래 크롬에서 하다가 크롬에서도 못찾아서 파이어폭스로 왔습니다.
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
강의랑 관련없는 내용이지만
강의랑 관련없는 내용이지만 크리핵티브님 강의중 시큐어 코딩을 구매 할려고 하는데 기본지식에 php 랑 html 정도만 알면 (xss기법를제외하고)나머지 기법 대부분 이해할 수 있을까요?
-
해결됨웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
pw='[ENC_DATA]'
pw='[ENC_DATA]' 는 왜 거짓인가요??pw는 DB에서 가져온거면 참이 맞다고 생각되는데.. 어떠한 이유로 거짓인건가요?!
-
해결됨웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
MAC php.ini 파일 내 magic_quotes_gpc
mac 환경에서 MAMP 설치해서 수업 따라가는 도중에 php.ini 들어갔는데 magic_quotes_gpc 가 없습니다..php버전은 7.4.33 사용하고 있는데 없는 경우에는 어떻게 해야하나요?
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
왜 취약점이 존재한다고 판단할 수 있는지 궁금합니다.
안녕하세요. 취약점 분석 방법론을 듣고 있다고 궁금점이 생겨 글을 올립니다.에러발생 유/무->에러가 발생하면 중요 정보가 노출이 될 수 있으므로 발생 유/무 체크취약점 유/무 확인->입력값이 dbms에서 해석될 수 있는지 체크(ex. idx=193-1 로 idx=192인 글이 조회되면연산자가 dbms에서 해석된 것이므로 sql injection공격이 가능할 가능성이 있다.) 조건구문완성->최종적으로 조건구문을 완성해야 error,blind sql injection 공격이 가능하므로 체크한다. 이렇게 이해해야 하는걸 까요? 특히, 취약점 유/무 단계에서 왜 설명해주신 방법으로 취약점 유무를 판별할 수 있는지 헷갈립니다. 단순히 입력값이 dbms에서 문법으로 해석될 수 있는지 체크하는 작업인가요?
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
스프링을 배우는 게 나중에 웹 취약점 진단에 도움이 될까요?
현재 sql injection 1편을 거의 다 들은 학생입니다. 게시판 어플리케이션을 제가 직접 제작하고 취약점 분석, 공격, 시큐어코딩을 해보려고 합니다. php는 어느 정도 알지만 스프링은 하나도 모르기 때문에 공부를 해야하는데, 제가 듣기론 금융권은 스프링을 많이 쓴다고 들었습니다. 그냥 php로 제작하기 보단 스프링을 배워놓는게 도움이 될까요?(사실 그 시간에 웹해킹 공부를 더 하고 싶긴 합니다..)
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
질문이 있습니다
오라클 blind sql의 경우 자세하게 설명이 안나와 있는데 혹시 테이블 개수 확인 후 테이블 명을 뽑을 때 어떻게 해야되는지 궁금합니다..
-
해결됨웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
맥 apmsetup 다운로드
맥으로 apmsetup 다운을 못해서 인터넷에 찾아봐도 모르겠는데 어떻게 해야되나요?
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
마지막 서브쿼리문
서브쿼리문 select from (select from ex_member where 1=1) where id = ? 를 쓰면 placeholder 개수를 신경 안써도 된다는건 서브쿼리의 실행여부로 조건구문을 테스트 할 수 있다는 뜻인거죠? 즉, 서브쿼리가 성공적으로 수행되면 placeholder의 개수로 인한 에러가 뜰 것이고, 서브쿼리가 실패하면 테이블 없다는 에러가 뜨는 걸로 테스트 한다고 이해하면 될까요?그리고 sql 쿼리문 실행과정이 웹 기초 강의에서 구문분석,정규화->컴파일->쿼리 최적화->캐시->실행이라고 하셨는데 서브쿼리문을 쓰게 되면 서브쿼리에서 위의 과정을 한번 거치고, 전체 쿼리에서 위의 과정을 또 거쳐서 총 2번 거치는건가요?
-
미해결웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
인증서 설치하고 다 설정 제대로 되있는데 무한정 대기걸립니다.
강사님과 같이 파이어폭스에 폭스프록시 설치해서 동일하게 세팅하고 네이버 접속했는데 무한정 대기가 걸립니다. 인증서도 다운받아 신뢰가능한루트저장소에 설치된거도 확인했는데 무한정 대기가 안풀리네요ㅠㅠ 빠른 답변 주시면 감사하겠습니다.
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
mssql 연동문제 (PHP 7.0이상)
php 7버전 이상부터는 sqlsrv_connect 사용해야된다고 해서 dll 깔고 했는데요. 연결이 안되네요... mssql 정보 입력 문제인줄 알고 cmd로 접속을 해봤는데 잘됩니다. 근데 php로 하면 아무것도 안뜹니다.
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
TIP)Warning: oci_connect() [function.oci-connect]: ORA-12541: TNS:no listener in C:\APM_Setup\htdocs\oracle_connect.php on line 6 Fatal error: ORA-12541: TNS:no listener in C:\APM_Setup\htdocs\oracle_connect.php on line 9
윈도우 11에서, oracleDB설치에 실패 후, VMware에서 환경 구축중입니다. 아래의 내용의 에러가 발생했을경우, 이전 다른분도 질문 남겨주셨지만, 해결책이 없어 고민하던중 stackoverflow에서 해결방법을 찾았고, 문제 해결이 되었으므로, 동일 혹은 비슷한 증상일 경우 한번 해보시길 추천드립니다. Warning: oci_connect() [function.oci-connect]: ORA-12541: TNS:no listener in C:\APM_Setup\htdocs\oracle_connect.php on line 6 Fatal error: ORA-12541: TNS:no listener in C:\APM_Setup\htdocs\oracle_connect.php on line 9 Step 1 - listener.ora 의 수정 C:\app\유저명\product\18.0.0\dbhomeXE\network\admin\listener.ora 을 연뒤, (ADDRESS = (PROTOCOL = TCP)(HOST = 아이피 어드레스 )(PORT = 1521)) 아이피어드레스를 0.0.0.0으로변경 (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0 )(PORT = 1521)) Step 2 - oracle 관련 서비스의 재시작 윈도우키 + R 키 services.msc 입력후 목록에서 Oracle로 시작하는 모든 서비스를 재시작 다들 좋은 결과 있으시길 기원합니다. 원본링크 ) https://stackoverflow.com/questions/13358656/oracle-client-ora-12541-tnsno-listener
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
모의해킹 시
저 궁금한게 있는데 지금 ERROR-BASED까지 수강을 들은 모의해킹 입문자입니다. ERROR-BASED를 보고나서 궁금한게 php?IDX=4 extractvalue~~ 이렇게 데이터 조회 공격을 하는데 만약 컬럼값이 없는 로그인창 즉 .com .php .kr로 끝나는 도메인일때는 공격을 할 수가 없는건가용? 그게 아니라면 어떻게 공격을 실행해야 하나용?
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 고급 공격 기법 : PART 2
mssql 3번라인 계속 에러나네요..
Fatal error: Call to undefined function mssql_connect() in C:\APM_Setup\htdocs\mssql_connect.php on line 3 강의에 나와있는데로 따라해봤는데 전부 똑같이 안되네요... 혹시 설치하신 가상머신 파일좀 받을 수 있을까요...ㅠㅠ
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
Oracle Database 18c Express Edition를 다운받아 설치하는데 롤백이 되고 설치가 완료되지 않습니다.
설치가 되지 않네요ㅜㅜ 다른 버전을 설치해봐야 하나요?