본문 바로가기
반응형

분류 전체보기167

[Load of SQLinjection][LOS] 문제풀이 wolfman LOS 5번째 문제다. 스페이스바를 막아놨다. --;; 그냥 탭으로 대체하면된다. https://www.degraeve.com/reference/urlencoding.php 위 사이트에 보면 url encode 값들을 알 수 있다. 우리가 계속 쓰던 스페이스바(띄어쓰기)는 %20이다. 탭은 %09이다. 띄어쓰기부분을 모두 탭으로 바꿔주면 된다. POC : ?pw=1%27or%09id=%27admin%27%23 2021. 8. 12.
[Load of SQLinjection][LOS] 문제풀이 orc LOS 4번째 ORC 자 코드를 보자 해석하면 pw를 get으로 받는데 id는 admin으로 고정되어 있다. 첫번째 result 쿼리가 참일 경우 hello admin을 뿌려주고 첫번째는 특 쿼리는 특수문자를 사용할 수 있지만. 두번째 쿼리는 addslashes를 사용하기 때문에 특문이 막힌다. 그리고 처음 입력한 pw와 addslashes 처리된 pw가 일치하면 orc를 풀어준단다. 한마디로 정확한 비밀번호 찾아내란 소리다. 그럼 뭘하면 될까? 우선 우리에게 주어진것은 특정 쿼리가 주어졌을때 해당 값이 참인지 거짓인지 알 수 있다는 점이다. 참, 거짓을 알아낼 수 있으면 blind sql injection 을 할 수 있는 가능성이 있다. 우선 길이를 알아내야한다. mysql의 length 함수를 사용하.. 2021. 8. 12.
[Load of SQLinjection][LOS] 문제풀이 goblin LOS 3번째 문제 goblin 코드를 보니 get으로 no 값을 받는데 해당 쿼리를 조회했을 때 결과에서 id가 admin인 row가 있어야한다. 근데 여기서 preg_match를 보면 '와 " 등 필터링이 걸려있다. 우선 당황하지 않고 자세히 생각해본다. 우선 no를 int형으로 입력하면 뒤에 '를 붙이지 않고 or을 쓸수 있다. 그 후 당연히 로직은 or id='admin' 이라고 생각하지만 ' 가 필터링이 걸려있다. 참고로 url encoding 해도 안된다. 그렇다면 string값을 우회하면된다. DB마다 다르지만 현재의 코드는 mysql를 사용한다. MySQL에서는 Hexadecimal Literals 이란게 존재한다. https://www.geeksforgeeks.org/mysql-hexad.. 2021. 8. 12.
[Load of SQLinjection][LOS] 문제풀이 cobolt LOS 두번째 문제 cobolt이다. 접속 후 나오는 코드를 보면 아래와 같다. ID와 PW를 get 인자로 받는데 이때 pw는 md5로 암호화 하며 해당 쿼리의 결과에 id가 admin이면 문제가 풀린다. 근데 여기서 pw=md5로 암호화하는 구문이 있다. 지금 현재 query 가 "select id from table where id = 'get[id]' and pw ~" 형식으로 되어 있는데 여기서 주석을 사용하여 "select id from table where id = 'get[id]'" 로 쿼리를 실행시킨다면 pw여부와 관계없이 admin이 table에 존재하는지만 확인한다. 그렇다면 poc는 다음과 같이 생각해볼수 있다. id=admin'# 여기서 ' 를 붙이는 이유는 주석처리를 하더라도 이.. 2021. 8. 12.
[Load of SQLinjection][LOS] 문제풀이 gremlin LOS 1번 문제 GREMLIN los.eagle-jump.org로 들어가 회원가입후 로그인하면 제일 먼저 풀 수 있는 문제가 gremlin 이다. 해당 문제를 확인하면 아래와 같이 소스코드를 보여준다. get으로 id와 pw를 받아와 db에 조회하고 나온 결과에서 ['id']가 존재할 경우 solve("gremlin")을 실행시켜 준다. 필터링 문자열은 preg_match에 인자로 나와있다. 물론 여기서 내가 입력할 문자중에 필터링 당하는 것은 없다. 솔직히 말해서 문제에 주어진 소스코드만 보았을때는 id가 어느게 있는지 모른다. 그래서 나는 내 id를 인자로 넣었다. 그리고 or 1=1로 해당 쿼리의 결과를 참으로 만들면 된다. 2021. 8. 12.
DFS와 BFS 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 출력하면 된다. .. 2021. 8. 12.
반응형