2025/05 9

[8주차 코칭] 이제 진짜 본게임이다.

지난주 복습1. insert나 update가 들어가는 구문에도 SQL Injection을 할 수 있지만 암묵적으로 Select를 대상으로 한다.2. 일반적으로 운영서버에서 취약점을 찾기 때문에 잘못 건드릴 경우 전체 회원의 비밀번호가 바뀌거나 이런 문제들이 생길 수 있다.3. 상황별로 Union, Error based, Blind 를 선택해야한다는 것을 배웠다.4. 이제부터 본게임이다.1. 그동안은 연습이었다. 솔직히 어디서 취약점 SQL Injection이 있는지 아는 문제만 풀었다.2. SQL Injection 포인트를 찾는 것이 중요하다.3. SQL Injection은 어디서 테스트해야할까 : DB와 상호작용하는 곳

[8주차 과제] 연습 열심히 하자~

오늘 과제1. Error Based SQLi 정리 & 연습문제 풀기[SQL Injection (Error Based SQLi Basic)]2. Blind SQLi 정리 & 연습문제 풀기[SQL Injection (Blind Practice)]이번주 과제1. SQL Injection : 데이터 추출 총 정리2. SQL Injection 문제 풀어보기3. 웹 사이트 개발 과제 : 게시판, 게시글 리스트 보여주는 페이지, 게시글 상세 내용, 게시글 작성1.SQL Injection(Blind Practice)1. normaltic을 넣으면 존재하는 아이디라고 나옴2. normaltic2를 넣으면 존재하지 않는 아이디라고 나옴. 그런데 normaltic'을 넣으면 응답이 안날라옴. 항등원 normaltic' an..

[8주차 강의] Error SQL Injection, Blind SQL Injection

Part1. 6주차 리뷰한번에 여러개 데이터가 안나오는 경우도 있다.그럴 때는 특정 행만 출력하게 해야한다.이럴 때는 limit[index],[count] 문법을 사용하면 된다.Part2. 에러 문구를 통한 해킹기법 1. SQL 질의 결과가 화면에 출력된다 -> union sqli를 활용한다.(지난주에 배운 것)2. Error가 출력된다. -> Error Based SQL Injection을 사용한다.3. 에러 메시지를 활용해서 데이터를 출력한다.우리가 활용하기 위해서는 두가지 조건이 있다.1. logic 에러2. SQL 에러 : 웹서버나 백엔드의 코드 에러는 필요없고 SQL 구문의 에러여야한다.logic 에러가 아닌 syntax 에러는 우리에게 쓸모가 없음1. Syntax 에러 : 실행이 안되기때문에 ..

[6주차 코칭] 강의는 기법이라면 코칭은 맥락을 알려주는 시간

2주간 복기1. 7주차는 노말틱님 일정으로 스킵. 대신 보너스 문제가 나옴.2. 필터링된 것을 우회하는 방법을 여러가지로 시행착오로 배워야함3. 지난주차에 배운 것 복기4. DB를 관리하는 시스템 DB라는 것이 존재함5. DB의 data가 화면에 찍힐 때 UNION SQL Injection이 효과적6. 로그인창 같은 실행하는 곳에서는 SQL Injection의 취약점은 있을 수 있다. 하지만 이때는 UNION SQL Injection을 못 사용한다. 이럴 때 사용하는 것이 이번주에 배우는 Blind SQL Injection. 하지만 속도가 굉장히 느리다.7. 상황에 따라서 UNION이 훨씬 효과적일 때도 있으니 잊지말자 UNION.

[6주차 과제] 말틱님이 알려준대로만 하면 된다.

영상과제UNION SQL Injection 복습doldol 데이터만 출력하기 (하나만 나오게!)SQL Injection1, SQL Injection2 문제 풀기Web개발 공부하기 : 목표는 3개월 안에 커뮤니티 사이트 만들기(로그인, 회원가입, 마이페이지, 게시판)SQL Injection1검색어는 User ID로 고정되어 있고, a로 검색하면 대문자 소문자 구분없이 전부 나옴a%' and '1%'='1로 검색해보니 잘 나옴, a%' and '1%'='2로 하니 안나옴 : SQL Injection이 적용되고 있다.a%'order by 4 #로 하면 나오는데 a%'order by 5 #로 하면 결과가 안나옴 : column 개수는 4개a%' union select 1,2,3,4 #을 했는데 "ctf2.seg..

[6주차 강의] SQL Injection 데이터 추출

Part1. Intro해킹은 재능/능력 중 재능보다는 노력이다. 파이팅해보자.해킹에서 노력은 고민하는 시간이 중요하다.문제가 발생하면 문제의 원인을 찾아라. 문제가 저절로 해결된다.step by step으로 개발해라. 전체를 다 만들고 테스트하면 어디에서 디버깅을 해야할지 모름. Part2. Q&A Q1. response를 조작하는 것이 서버에서 fail을 내렸는데 왜 프론트에서 ok 했다고 자동으로 되는거냐. > response를 fail에서 ok를 바꿨을 때 index.php로 리다이렉팅된다. > index.php에서는 script가 존재한다. > 결과는 이미 오고 있었는데 javascript로 login.php로 보내고 있었을 뿐이다.Q2. pincode 해설 > 서버에 4글자..

[5주차 과제] 현생에 치여서 조금 늦은 과제 풀이

Get Admin로그인해보니 쿠키에 loginUser=doldol이 있음admin으로 변경해서 보내보니 로그인 됨!PIN CODE BypassFire를 눌러보니 "관리자만 이용가능합니다. 관리자인 경우만 확인 버튼을 클릭하고 계속 진행해주세요."이런 문구가 나옴확인을 눌러보니 비밀번호를 입력하라고 나옴. 이제서야 비밀번호가 나오는게 좀 이상함.비밀번호를 1234로 눌러보니 alert가 나옴그런데 비밀번호를 GET으로 보내고 있다. 취약하긴 하지만 현재 문제에서는 쓸 수 없으니 넘어가자비밀번호 입력칸이 같은 페이지내에서 분기처리된게 아니라 페이지가 달라지는게 이상해서 살펴보니 step1, step2로 바뀌었다.step3를 입력해서 접속해보니 발사 버튼이 보이고 누르니까 segfault가 나옴!Admin i..

[5주차 코칭] 로그인 우회 접근 방법

로그인 우회 접근 방법1. 맨처음부터 admin' or'1'='1을 시도할경우 접근 로직이 망가질 수 있음2. 아무거나 로그인 시도해보고 웹 패킷을 먼저 봐야함3. 그 결과 302 리다이렉팅이 뜨면 응답헤더에서 location을 봐야한다.4. dashboard.php는 다시 index.php로 보낸다는 사실을 알아야함5. ey로 시작하거나 =로 끝나면 Base64일 확률이 높다. {가 ey로 변환됨1번 퀴즈1. 로그인 시도 실패했을때 보이는 쿠키값에 auth가 있음2. auth를 디코딩해서 true값으로 다시 인코딩해서 백엔드로 보냄2번 퀴즈1. 세션 아이디를 기준으로 인증함. 2. 로그인 실패시 index.php로 가고 성공시 dashboard.php로 감3. sql injection test를 해볼 ..

[5주차 강의] SQL Injection

중간정리1개월차 : 웹 서버의 이해2,3,4개월차 : 웹 해킹 기법5개월차 : 작은 프로젝트Part 1 : 1개월차 복습1. Client - Web - WAS - DB 흐름2. Web : 파일을 전달하는 친구. 정적 리소스를 전달.3. WAS : 동적 리소스를 전달4. DB : 데이터를 저장하는 곳5. Frontend - Backend의 구분6. SQL 구문7. 쿠키 : 포스트잇 / 출처가 클라이언트라서 문제가 생김8. 세션 : 서버에 저장하는 정보 / 세션을 식별하기 위해서 세션 ID를 고안함9. Burp Suite : Web proxy서버10. 식별 과정 : 식별값(ID)으로 정보를 찾는 과정11. 인증 과정 : 그 ID를 사용하는 사람이 실제 해당 유저인지 인증하는 과정Part 2 : SQL Inj..