분류 전체보기
[Lord of SQL Injection] orc 4번 풀이
[Lord of SQL Injection] orc 4번 풀이
2021.10.10[ 문제접근 ] 1. 쿼리 : id는 admin으로 고정되어 있고 pw가 존재, 이를 통해 DB를 조회한다 2. $_GET[pw] : GET방식을 통해서 pw를 입력을 받는다 3. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) : DB 조회결과의 pw와 우리가 입력한 pw가 같아야 solve("orc"); 시켜줌 => 이 문제에서 우리는 admin의 pw를 알아내야함4. 로그인에 성공시 Hello admin을 출력시켜줌 =>방법 : BlindSqlinjection을 통해 pw를 알아내야함 > pw를 한글자씩 비교하고 Hello admin 출력으로 참,거짓을 판별* 힌트 : length(문자열), substr(문자열, 시작할 지점, 자를 개수), ASCII..
[Lord of SQL Injection] goblin 3번 풀이
[Lord of SQL Injection] goblin 3번 풀이
2021.10.10[ 문제접근 ] 1. 쿼리 : id와 no파라미터가 존재하고, 이를 통해 DB를 조회한다 2. $_GET[no] : GET방식을 통해서 no를 입력을 받는다 3. 5,6번 줄에서 $_GET[no] 을 통해 입력받은 데이터에 ' , " 를 검사하고 필터링함 4. if($result['id'] == 'admin') : 질의 결과 id가 admin일 경우 solve("goblin")을 시켜줌 => 방법 1 : id에 admin을 문자열 인코딩을 통해 입력 => 방법 2 : id에 admin이라는 문자열을 내장함수를 사용해 입력 [ 문제풀이 ] 더보기 지금까지 문자열을 넣을때 사용했던 방식인 '문자열'을 사용해서 문자열을 넘겨주려 했으나, ' " 을 필터링하고 있다. 따라서 우리는 기존방식이 아닌 다른 방식으로..
[Lord of SQL Injection] cobolt 2번 풀이
[Lord of SQL Injection] cobolt 2번 풀이
2021.10.10[ 문제접근 ] 1. 쿼리 : id와 pw파라미터가 존재하고 pw를 md5 암호화, 이를 통해 DB를 조회한다 2. $_GET[id], md5('{$_GET[pw]}') : GET방식을 통해서 id와 pw를 입력받고 pw는 md5암호화 3. if($result['id'] == 'admin') : 쿼리문 질의 결과의 id가 admin일 경우 solve 시켜준다 > 방법 1) md5를 우회해서 입력 > 방법 2) id에서 admin을 입력 후 주석처리하여 뒤에 존재하는 조건을 무시 [ 문제풀이 ] 더보기 : ?id=admin%27%23 정답1은 주석을 활용한 방법이다. ?id=admin'# admin뒤에 '를 붙여 문자열을 탈출하고 #을 적어줌으로써 뒤에 존재하는 쿼리를 모두 주석처리할 수 있다. 하지만 ?..
[Lord of SQL Injection] gremlin 1번 풀이
[Lord of SQL Injection] gremlin 1번 풀이
2021.10.10[ 문제접근 ] 1. 쿼리 : id와 pw파라미터가 존재하고, 이를 통해 DB를 조회한다 2. $_GET[id], $_GET[pw] : GET방식을 통해서 id와 pw를 입력을 받는다 3. if($result['id']) solve("gremlin"); : DB에 id와 pw가 일치하고 그 결과가 참일경우, 즉 쿼리 질의결과 참인경우 solve(gremlin)를 시켜준다 => 정리 : 우리는 쿼리문을 통한 질의에서 항상 참을 반환하도록 하면 된다 [ 문제풀이 ] 더보기 : ?id=0&pw='1'or'1 select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}' {$_GET[id]}와 {$_GET[pw]} 자리에 우리가 입력한 값이 들어..
[ Centos7 ] 해상도 설정
[ Centos7 ] 해상도 설정
2021.05.181. 부트로더인 grub 파일에 접근한다 $ sudo vi /etc/default/grub 2. grub 설정 편집 위와 같이 GRUB_CMDLINE_LINUX에 vga=792 추가 아래 표를 참고하여 792대신 자신이 원하는 값으로 바꾸면 됩니다. * 16진수로 값을 넣을 경우 0x 를 앞에 붙여서 추가 * 3. grub 파일 업데이트 $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg 3. 리눅스 재부팅 $ reboot
[ PE ( Portable Executable ) 헤더 구조 / 분석 ]
[ PE ( Portable Executable ) 헤더 구조 / 분석 ]
2021.05.16이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
데이터베이스 용어
데이터베이스 용어
2021.05.15이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
basic_exploitation_002
basic_exploitation_002
2021.04.07이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
Basic_exploitation_000
Basic_exploitation_000
2021.04.03이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[x86] 자주 사용되는 레지스터와 어셈블리 명령어
[x86] 자주 사용되는 레지스터와 어셈블리 명령어
2021.03.26[1] 어셈블리 ( Assembly ) 가 뭐야? 어셈블리는 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어 ( Low Level language)로 0과 1의 이진수를 사람이 알아보는게 한데 이를 보완하기 위해 나온게 어셈블리다. 사람이 일상 생활에서 사용하는 자연어에 가깝게 1~6개의 문자로 기호화해서 나타낸 언어이다. - 고급언어 : 사람이 이해하기 쉽게 작성된 프로그래밍 언어로 컴퓨터에 대한 전문적인 지식이 없어도 저급언어에 비해 배우거나 다루기 쉽고 가독성이 좋은 사용자 중심의 언어를 말한다 (ex: C, JAVA, C++ ... ) - 저급언어 : 고급언어에 비해 이해하기 어렵고 사용하기 불편하지만 속도가 빠르고 컴퓨터가 처리하기에 좋은 컴퓨터 중심의 언어를 말한다 (ex: 기계어,..
System: [INTEL] 8060메모리 구조
System: [INTEL] 8060메모리 구조
2021.03.24[ 8060 란? ] 인텔사에서 개발한 16비트 마이크로프로세서이며, x86 아키텍처를 적용한 첫 제품이다. [ 메모리 구조 ] 메모리는 기본적으로 유저영역과 커널 영역으로 나누는데 왜 2가지 영역으로 나누는 걸까? 이유는 바로 시스템 운영에 필요한 메모리와 운영체제가 커널 영역에 올라가 있다 이런 중요한 영역에 사용자가 마음대로 접근한다면 시스템의 불안정을 초래할 수 있지 않겠는가? 그렇기 때문에 사용자가 함부로 커널영역에 접근할 수 없도록 유저영역과 커널영역으로 분류하여 사용하는 것이다. 여기서 나누는 영역의 크기는 운영체제와 설정에 따라 달라질 수 있다. 가용 메모리 영역인 유저 영역에는 여러개의 세그먼트 들이 저장 될 수 있음. 세그먼트는 하나의 프로세스를 묶은 것으로 스택, 데이터, 코드 영역으..
Write-Up: [HackCTF][Web] - Hidden
Write-Up: [HackCTF][Web] - Hidden
2021.03.22한번 문제에 접속해봅시다!. 음 5번 파일에 플래그가 있다고 하네요.. 그래도 한번 소스를 볼까요? 각 버튼을 누르면 get방식을 통해 id값을 value로 전송을 하네요 그러면 url에 id를 5로 넘기면 플래그가 나올 것 같네요 다음과 같이 한번 요청을 해볼까요? ctf.j0n9hyun.xyz:2023/?id=5 더보기 플래그가 바로 나오네요