Web Hacking/LoS 18

[Lord of SQL Injection] los zombie_assassin

strrev함수는 문자열을 뒤집어서 반환하는 함수다. addslashes함수로 싱글쿼터를 입력하면 백슬러시가 추가된다. id=admin' 을 입력하면 다음과 같이 된다. 이렇게 입력해도 안되는 것을 보니 저 백슬러시를 처리해야 할 것 같다. ?id=nimda&pw= %231=1 ro ' 싱글 쿼터랑 백슬러시랑 이것저것 써봤는데 백슬러시를 맞추기가 힘들었다. 대신 더블 쿼터를 쓰면 더블 쿼터 뒤의 백슬러시가 그 뒤의 싱글 쿼터를 문자로 취급하고, and pw='까지 id에 들어가며 or 1=1#를 쿼리로 취급해 문제를 해결할 수 있다. id="&pw=%23 1=1 ro id='"\' and pw='or 1=1#

Web Hacking/LoS 2021.08.22

[Lord of SQL Injection] los succubus

id와 pw에서 싱글쿼터만 필터링하고 있다. 문제 의도가 싱글쿼터만 우회하면 되는 것 같아 찾아보았다. https://g-idler.tistory.com/61 백슬래시를 사용 id=\&pw= or 1 %23 백슬래시 때문에 뒤에 있는 싱글쿼터는 문자로 인식된다. 따라서 \' and pw는 문자열로 인식되고 뒷 부분이 쿼리로 인식된다. 다만 이번 문제같은 쿼리에 제한적으로 사용 가능하다고 한다. select id from prob_succubus where id='{$_GET[id]}' and pw='{$_GET[pw]}

Web Hacking/LoS 2021.08.15

[Lord of SQL Injection] los assassin

$_GET[pw]에서 '를 필터링하고 있다. 이번 문제는 like를 사용하는 문제다. %1% → 1이 들어가는 것 %1 → 끝이 1인 것 1% → 처음이 1인 것 을 출력해준다. 우선 1부터 0까지 차례차례 입력해보았다. 1, 2, 9, 0에서 hello guest를 띄웠다. 그 다음으로는 처음이나 끝자리부터 맞춰보려고 했는데, %으로 입력하면 url인코딩으로 바뀌어 입력되길래 %를 맨뒤에 입력해주는 방향으로 맞춰보았다. 첫자리는 9 두번째는 0 세번째 자리까지 맞추자 클리어할 수 있었다. pw=902%

Web Hacking/LoS 2021.08.03

[Lord of SQL Injection] los giant

이전과는 다른 느낌의 쿼리다. $_GET[shit]에 들어가는 문자열 길이가 1을 넘으면 안된다 일단 아무값이나 넣어봤다 ?shit=1 중간에 공백을 넣어 쿼리를 완성시키면 되는 것 같다. 길이 조건이 거슬린다. \n, \r, \t등이 필터링 되어있다. 공백우회방법중에 %0a, %09, %0d, /**/, + 등을 시도해봤는데 통하지않았다. %0b와 %0c로 해결할 수 있었다. https://posix.tistory.com/42 vertical tab과 form feed라고 한다. ?shit=%0b

Web Hacking/LoS 2021.08.03

[Lord of SQL Injection] los bugbear

pw에서는 '를, no에서는 substr, ascii, =, or, and, like, 0x, 공백, '를 필터링하고 있다. 각종 우회방법을 사용해 hello admin을 띄워냈다! "는 필터링하고 있지 않으니 '대신 사용하면 되고, =은 instr함수로, or은 ||으로, 공백은 %0a로 우회했다. no=1%0a||%0ainstr(id,"admin")%23 이번에도 패스워드는 8자리였다. 부등호로 우회했다. no=1%0a||%0ainstr(id,"admin")%0a&&length>7&&length

Web Hacking/LoS 2021.08.01

[Lord of SQL Injection] los darkknight

admin의 pw를 맞춰야 해결이 가능하다. no에서 substr, ascii등의 함수를 필터링하고 있다. = 등의 문자도 필터링하고 있다. pw는 '를 필터링하고 있다. 이번에도 blind SQL인젝션 같은데 필터링이 많아져 복잡하다. 우선 여러가지로 시도해보았다. (=은 like로 우회했다.) pw=2341&no=12 or id like admin %23 생각해보니까 더블쿼터를 필터링하지 않아 사용할 수 있을 것 같다. pw=2341&no=12 or id like "admin" %23 이제 비밀번호를 알아내보자. substr은 mid함수로, ascii는 ord함수로 우회할 수 있다. https://g-idler.tistory.com/61 비밀번호 길이 알아내기 pw=2341&no=12 or id li..

Web Hacking/LoS 2021.07.18

[Lord of SQLINJECTION] los golem

비밀번호를 맞춰야하고, 여러가지 특수기호가 막혀있다. or, and, substr(, = substr함수가 막혀있는 걸 보면 blind SQL 인젝션인 것 같다. =은 like로 우회가 가능하다고 한다. pw=2' || id like 'admin'%23 blind SQL인젝션이 맞다. 이제 막혀있는 것들을 잘 우회해서 풀어보자. 비밀번호 길이 pw=2' || id like 'admin'%26%26length(pw) like 8%23 &&은 %26%26로 우회해줬다. 8글자다. 이제 자동화 프로그램을 돌려서 비밀번호를 알아내자. import requests headers = {'Cookie' : 'PHPSESSID=쿠키;'} url = "https://los.rubiya.kr/chall/golem_4b52..

Web Hacking/LoS 2021.07.11

[Lord of SQL Injection] los vampire

이번에도 id를 admin으로 만들어야 한다. str_replace() 라는 함수가 생겼는데, 문자열을 치환하는 함수라고 한다. 1번째 인수 : 변경대상 문자 2번째 인수 : 변경하려는 문자 3번째 인수 : replace가 바꾸고자 하는 문자열 $_GET[id] = str_replace("admin","",$_GET[id]); 이 부분을 보면 admin으로 들어온 변수를 ""으로 바꾸는 것 같다. 실제로 admin을 입력하면 이렇게 된다. ?id=admin 다른 문자를 입력했을 경우 ?id=admi 이 함수를 우회하면 될 것 같다. 우선 대문자는 통하지 않았다. xss에서 써본 적이 있는데, adadminmin 이렇게하면 필터링 되는 값은 없어지고 나머지가 남아 우회가 가능하다. ?id=adadminmi..

Web Hacking/LoS 2021.06.28