개발자 도구 F12를 눌렀을 때 나오는 화면은 아래와 같다. 빨간색 : 요소 검사 (Inspect) 및 디바이스 툴바(Device Toolbar) 주황색 Elements: 페이지를 구성하는 HTML 검사 Console: 자바 스크립트를
Exercise: SQL Injection SQL Injection을 배우고 실행해보는 첫 문제문제 코드를 해석해보자 먼저 데이터베이스 구성 코드이다. db라는 이름의 데이터베이스 파일을 생성해주고, db에 users라는 테이블을 만든다. users 테이블 안에는
Exercise : XSS XSS를 배우고 해결하는 첫 문제 상당히 어려웠다.. 아래 코드를 해석하여 flag를 얻어내면 되는 문제인데, 코드를 하나씩 살펴보자. 엔드 포인트 : /vuln 코드를 살펴보면, 이용자가 전달한 param 파라미터의 값을 출력한다.
1. on 이벤트 핸들러 이용 2. 문자열 치환 가령 script라는 문자열을 공백으로 치환한다면, 와 같이 적어주거나, 대소문자를 구분하지 않는다면 와 같이 적어주면 된다. 3. HTML Entity Encoding 가령 n이라는 문자가 필터링된다면, 
이런 코드를 볼 수 있었고, 내가 입력한 문자에 'flag'가 들어있다면 NO를 리턴하는 코드이다.이를 정규표현식으로 고쳐주니 원하는 결과 값이 출력되었다.
Level 1. Mango문제 해석은 잘 되어서url 창에 'login?uid=admin'을 사용할 수 없다는 것을 알았는데,문제는 그렇다면 어떻게 admin계정의 비밀번호를 알아내냐는 것이었다.그렇게 열심히 구글링도 해보고 코드 해석을 통해 문제를 이해할 수 있었다.
먼저 위의 코드를 살펴보면,/ping 페이지에서 host를 받아온다는 것을 알 수 있다.그리고 받아온 host를 이용해 풀이를 진행하면 되는데,문제는 ping페이지에 존재했다.아래 코드는 ping.html의 일부이다.현재 pattern이 존재하므로; | 와 같은 메타문
0x400000 부터 0x400019까지의 데이터를 대응되는 아스키 문자로 변환하는 문제dl에 주소rsi + rcx의 값을 저장// BYTE이므로 1바이트만 저장 -> 처음에는 0x67, 그 다음에는 0x55 이렇게dl과 0x30을 xor하여 dl에 저장dl의 값을 주
먼저 get_info 페이지를 해석해보면,POST 방식에서 userid를 받아오고 API_HOST/api/user/userid의 text를 받아온다.또한, 현재 구하고자 하는 flag 값은 /api/flag에 있는 것을 확인할 수 있다.이를 위해 burp suite를
또한, preg_replace를 통해 입력받은 input_name에 "nyang" 문자가 있다면 공백으로 바꾸고,입력받은 input_pw에 위와 같은 정규표현식이 존재한다면 "d4y0r50ng"로 바꾸어준다는 것을 알 수 있다.그리고 아래 코드를 통해 name은 dny
먼저 다운 받은 파일을 IDA로 실행시키고, 0번과 1번 문제와 똑같이 Correct를 얻기 위해 해당 파일을 디컴파일했다.마찬가지로 Correct를 띄우는 함수를 더블클릭하여 들어가보았다.이번엔 앞선 문제와 달리 반복문이 설정되어 있고, 해당 반복문을 모두 통과해야지
이렇게 필터링 되는 부분이 많다는 점이다.또한, 해당 문자를 공백으로 바꾸는 것이 아닌 다른 문자로 바꿔주므로 중간에 삽입할 수도 없다.그렇기에 on 이벤트와 script 태그를 쓰지 않는 방법으로 우회를 해주어야 한다.그래서 일단 on 이벤트와 sript 태그를 사용
<a href="https://learn.dreamhack.io/15그래서 작성한 코드마찬가지로 base64로 인코딩되어 있어 이를 디코딩해주니 FLAG 값이 나왔다.
처음부터 해석해보면1\. menu_str 변수를 선언2\. org 변수에 메뉴 번호를 저장 후 int로 변경3\. st라는 리스트 생성 후 NULL값으로 초기화for문을 보면1\. res 변수에 org 를 4\*i만큼 오른쪽으로 쉬프트 한 값과 0xf와 &연산을 진행한
xss-1 문제와는 달리 script 태그가 안먹히는 것을 알 수 있다.그래서 /vuln 페이지에 들어가보니위 코드에서 볼 수 있듯이 .innerHTML 코드로 짜여있다는 것을 알 수 있었다. 그렇기에 script 태그가 먹히지 않아 다른 태그로 우회할 것을 생각했다
그래서 짠 코드는 아래와 같다.
blind-command 소스코드는 비교적 짧다. method != "GET"이면 되기때문에 burp suite를 켜서 어떤 method가 존재하는지부터 알아봤다. GET은 안되므로 HEAD를 이용하여 문제를 해결해야한다. <img src="https://velog.velcdn.com/images/sy460129/post/6cd54c08-156b-41...
먼저 위의 명령어를 통해 SQLi가 가능한지를 파악했고, 성공적으로 admin 계정으로 접속 할 수 있었다.그래서 주어진 fake_table_name괴 fake_col의 정확한 이름을 알아내기 위해 노력했는데,먼저 column수가 4개가 맞는지부터 확인해보았다.
소스코드를 읽기 전 uid로 guest와 admin을 넣어보았다.그랬더니 guest는 출력이 잘 되지만 admin은 block 되었다는 것을 알 수 있다.소스코드를 뒤져보니결국 uid를 받아와 sql 구문을 실행시키고, 여러 키워드를 사용하지 못하게 막는 함수가 존재했
지금 필요한 것은 c의 allow이고, http://의 allow 이므로 script-src 'self'를 통해 a와 b를 block하는데에는 성공했으나 c와 jquery마저 block되었으므로 다른 접근이 필요했다.그래서 nonce를 사용해볼까? 라는 생각이