일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- XSS
- Volatility
- MFT
- diva
- beebox
- 2018
- foremost
- Reflected XSS
- igoat
- base64
- InsecureBank
- NTFS
- otter
- SQL Injection
- ESXi
- logstash
- 파이썬
- vulnhub
- Strings
- Docker
- CTF-d
- frida
- 인시큐어뱅크
- ctf
- lord of sql injection
- Suninatas
- 안드로이드
- Openstack
- kibana
- elasticsearch
- Today
- Total
목록WarGame/Lord of SQL Injection (26)
Information Security
ⓐ flag의 값을 필터링 ⓑ 현재 로그인 session을 가지고 flag를 가져옴 ⓒ 임시 테이블을 생성하고 원래 테이블의 자신의 session에 대한 내용을 그대로 옮김 ⓓ 임시 테이블에 flag 값을 update ⓔ 임시 테이블의 flag 값을 가져옴 ⓕ session에 대한 flag값이 없거나, 원래 테이블의 flag값과 입력한 flag 값이 다르면 flag reset ( reset_flag()함수를 통해서 ) ⓖ 원래 테이블의 flag값과 입력한 flag값이 동일하면 문제 해결 ?flag=''' 입력 시 rest ok FLAG 값이 rest 된 것을 알 수 있다. 1. flage의 값이 100글자를 넘기지 말 것 2. flag가 갱신되지 않도록 update 쿼리문에서 에러를 발생시킬 것 3. ,..
?pw=''' 입력 시 빈 페이지를 보여주는 것을 알 수 있다. if문을 사용할 수 없게 되어 union을 이용하여 pw=' or id='admin' and (select 1 union selec 2 (length(pw)=10)) # 입력 시 빈 페이지를 보여주는 것을 알 수 있다. pw=' or id='admin' and (select 1 union selec 2 (length(pw)=8)) # 입력 시 메시지가 보이는 것을 알 수 있다. ?pw=5a2f5d3c 입력 시 해결되는 것을 알 수 있다.
Error Based Blind SQL Injection MySQL에서 if() 함수를 사용하면 참일 때와 거짓일 때 에러를 구분하여 발생시킬 수 있게 만들 수 있습니다. if(1=2, 'True', 'False'); False if(1=1, 'True','Fasle)'); True ?pw=''' 입력 시 아래와 같은 에러가 발생한다. ?pw=1%27 or if(length(pw)=15,(select 1 union select 2),1)%23 입력 시 아무런 메시지가 보이지 않았다. ?pw=1%27 or if(length(pw)=16,(select 1 union select 2),1)%23 입력 시 Subquery retruns more than 1 row 메시지를 확인할 수 있다. ?pw=!!!! 입력..
#은 한 줄 주석이므로 %0a를 이용해 줄을 바꾼 후 pw=%0a and pw='' or id='admin' # 입력 시 해결되는 것을 알 수 있다.