lord of sql injection

Web Hacking/LOS

Lord of SQL Injection - yeti

'waitfor' 이라는 문자열의 필터링이 사라졌다. Time Based SQL Injection 을 수행하면 될 것 같다. MSSQL 에서는 sleep 함수 대신에 waitfor dealy 문을 사용한다고 한다. pw=' or id='admin' and iif(len(pw)>0,waitfor delay '00:00:02',1)-- waitfor delay 는 명령어이기 때문에 iif 조건문에 들어가지 않는 것 같다. 일반 if 조건문으로 exploit 코드를 짜면 될 것 같다. import requests import time requests.packages.urllib3.disable_warnings() org_url = "https://los.rubiya.kr/chall/yeti_e6afc70b89..

Web Hacking/LOS

Lord of SQL Injection - mummy

필터링에서 괄호와 슬래시를 사용하지 못하게 막아놨다. 또한 query 에서 0x01 ~ 0x20 값이 인식되면 exit 된다. 이번에는 신기하게 query 전체를 내가 구성할 수 있게 되었다. 공백을 우회하는 문제와 Blind SQL Injection 문제가 융합된 형식인 것 같다. $result[0] 이 무슨 의미인지 궁금해서 sqlsrv_fetch_array 함수의 return 값을 검색해 보았다. success 할 경우에는 나오는 데이터를 array 형식으로 return 하고, fail 한다면 NULL 값을 반환한다. query 자체를 참으로만 만들면 'Hello anonymous'라는 문자열이 출력된다. 간단한 문제인 것 같다. 앞선 문제에서 column 명이 특수문자를 포함하거나 숫자로 시작할 ..

Web Hacking/LOS

Lord of SQL Injection - siren

mongo db 가 한 번 더 등장해주었다. Blind SQL Injection 을 수행해야 한다. 저번 연산자 중에서 하나 빼먹은 것이 있다. '$regex' 라는 친구다. 이 친구는 정규표현식을 이용하여 원하는 데이터와 비교할 수 있다. 자세한 내용은 아래에서 볼 수 있다. https://docs.mongodb.com/manual/reference/operator/query/regex/ MySQL에서는 like 문을 사용할 때, 'a'로 시작하는 문자열을 'a%'과 같이 작성하였다. NoSQL 에서는 정규표현식을 이용, 즉 '^a' 가 된다. 이외에도 위 문서를 보면 '$'는 특정 문자로 끝나는 문자열을 나타내기도 한다. 간단하게 테스트를 하나 해보자. 굳이 안 해도 되지만. id=admin&pw[$..

Web Hacking/LOS

Lord of SQL Injection - poltergeist

// Flag is in `flag_{$hash}` table, not in `member` table. Let's look over whole of the database Flag는 member 테이블이 아니라 flag_{$hash} 라는 테이블에 존재한다고 한다. 메타데이터를 써야할 분위기다. MySQL에서는 information_schema 라는 메타데이터를 사용하였다. SQLite 는 sqlite_master 라는 메타데이터를 사용한다. sqlite_master를 이용하여 테이블의 이름을 불러와 보자. group_concat 함수를 사용하면 원하는 데이터를 모두 출력할 수 있다.(https://lucvs.xyz/entry/Real-World-SQL-Injection, 참고) pw=' union s..

Lucvs
'lord of sql injection' 태그의 글 목록 (2 Page)