SQL查询结果集对注入的影响及利用_MySQL
对于注入而言,错误提示是极其重要。所谓错误提示是指和正确页面不同的结果反馈,高手是很重视这个一点的,这对于注入点的精准判断至关重要。本问讨论下关于几类错误和他产生的原理,希望对读者有所帮助。
错误提示主要有逻辑错误和语法错误以及脚本运行错误三类。
一:逻辑错误
简单的例子是1=1 1=2这两个,1=1与1=2页面不同的原理是什么?以$sql = “select * from news where id=$_GET[id]”为例。
select * from news where id=1 and 1=2产生的结果集为NULL,然后程序取值得时候,就会去出空值,无法显示。当然有的程序发现SQL执行结果集为空,就立即跳转,效果就不显鸟。值得注意的是,有的如Oracle Postgresql的数据库在结果集为空情况下会再页面上表现字符型null字样,这算是个特点。如果使用or条件,比如
select * from news where id=1 or 1=1
和and 1=2得结果正好相反,他的结果集十分庞大。如果SQL语句如此,再加上程序是循环读取结果集(一些编程上的陋习)那么会取出所有结果,结果可能运行很慢,在数据量巨大的oracle上容易出现。这个例子会出现什么呢,一般程序取出结果集中的第一条结果,那么很可能已经不是id=1的那条新闻了,这就是由些小菜奇怪有时候or 1=1页面会发生变化的原因。
归根到底,都是结果集不同造成的,灵活掌握是关键,这并非单纯的经验问题。
二:语法错误
语法错误时比较熟悉的,比如对于SQL Server,PgSQL,Sybase的注入错误提示都很重要,因为利用它的特性来获取信息很快速。语法错误造成的结果可能是SQL错误而中断脚本执行,但是脚本或服务器设置屏蔽错误的情况下,程序得到继续执行,但是结果集不存在,连NULL都算不上,反馈给攻击者的很可能就是结果集为空的情况,其实这是脚本的处理结果。当然Oracle PgSQL表现null。
三:运行错误不用说了,典型的就是利用mysql注入benchmark让脚本运行超时得到物理路径,以及利用超时来获得不同的表征进行盲注入。
四:逻辑错误和语法错误的结合。
当表征极不明显的时候,利用类似iff这样的函数进行正确与否的区分有时候会成救命稻草。因为语法错误和逻辑错误的表征大多数情况都会有不同。
iff(1=1,1,‘no’)这个会产生结果1 注意是数字,而iff(1=2,1,‘no’)这个会产生‘no’ 是字符。那么
id=1 and 1=iff(1=1,1‘no’)正确是必然成立的,而id=1 and 1=iff(1=2,1,‘no’)会因为类型不同发生语法错误。不过可惜的是似乎支持iff函数的数据库不多,呵呵。
现在讲结果集在注入中的利用原理。
一:从‘or’‘=’开始
这是学习SQL注入的初级课程,登陆漏洞。我简略从SQL结果集上分析。
$sql = “select top 1 * from admin where username=‘$username’ and password=md5(‘$password’)”;
显而易见,‘or’‘=’的加入使SQL语句返回了一条记录,这才使验证通过。
二:再看现在的验证中的SQL
$sql = “select top 1 * from admin where username=‘$username’”;
结果集不为空才根据抽取的记录集中的密码值与用户提交的密码MD5值进行比对来进行验证。这样,你突然发现‘or’‘=’的计策失败鸟,但是后台明明有注入,这就是验证方法造成的。跟进这个验证过程,‘or’‘=’的确产生了一个结果集(admin表中的第一行记录)但是遗憾的事,后来的密码比对没法通过,验证无法成功。
思路很简单,网上有案例,我重在原理,利用union来产生想要的结果集。比如‘and(1=2)union select top 1 username,’123456得md5值‘,id from admin where username=’admin
这样产生了admin的记录信息,但是记录集中的密码那个位置的值被替换成了123456的md5值,这样,使用admin 123456通过验证并且继承他的权利。
更有甚者全部用‘xxx’的方法来盲狙,这就很“过分”鸟。不过在sql2000 sybase这些严格要求类型匹配的数据库来说,这样不能撼动“管理员登陆”的,因为执行时发生了语法错误,结果集为NULL。另外以前ewebeditor注入漏洞来上传马也是这个union操作结果集来达到目的的经典案例。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











VirtualBox에서 디스크 이미지를 열려고 하면 하드 드라이브를 등록할 수 없다는 오류가 발생할 수 있습니다. 이는 일반적으로 열려고 하는 VM 디스크 이미지 파일이 다른 가상 디스크 이미지 파일과 동일한 UUID를 가질 때 발생합니다. 이 경우 VirtualBox는 오류 코드 VBOX_E_OBJECT_NOT_FOUND(0x80bb0001)를 표시합니다. 이 오류가 발생하더라도 걱정하지 마세요. 시도해 볼 수 있는 몇 가지 해결 방법이 있습니다. 먼저 VirtualBox의 명령줄 도구를 사용하여 디스크 이미지 파일의 UUID를 변경하면 충돌을 피할 수 있습니다. 'VBoxManageinternal' 명령을 실행할 수 있습니다.

비행기 모드로 전화를 걸면 어떻게 될까요? 휴대폰은 사람들의 삶에 없어서는 안될 도구 중 하나가 되었습니다. 휴대폰은 의사소통 도구일 뿐만 아니라 오락, 학습, 업무 및 기타 기능의 집합체이기도 합니다. 휴대폰 기능의 지속적인 업그레이드와 개선으로 인해 사람들은 휴대폰에 대한 의존도가 점점 더 높아지고 있습니다. 비행기 모드의 등장으로 사람들은 비행 중에 휴대폰을 더욱 편리하게 사용할 수 있게 되었습니다. 하지만 비행기 모드에서 다른 사람의 통화가 휴대폰이나 사용자에게 어떤 영향을 미칠지 걱정하시는 분들도 계시죠? 이 글에서는 여러 측면에서 분석하고 논의할 것이다. 첫 번째

Douyin 플랫폼에서 사용자는 인생의 순간을 공유할 수 있을 뿐만 아니라 다른 사용자와 상호 작용할 수도 있습니다. 때로는 댓글 기능이 온라인 폭력, 악성 댓글 등 불쾌한 경험을 유발할 수 있습니다. 그렇다면 TikTok의 댓글 기능을 끄는 방법은 무엇입니까? 1. Douyin의 댓글 기능을 끄는 방법은 무엇입니까? 1. Douyin APP에 로그인하고 개인 홈페이지에 들어가세요. 2. 오른쪽 하단의 "I"를 클릭하여 설정 메뉴로 들어갑니다. 3. 설정 메뉴에서 "개인정보 설정"을 찾으세요. 4. "개인정보 설정"을 클릭하여 개인정보 설정 인터페이스로 들어갑니다. 5. 개인정보 설정 인터페이스에서 "댓글 설정"을 찾으세요. 6. "댓글 설정"을 클릭하여 댓글 설정 인터페이스로 들어갑니다. 7. 댓글 설정 인터페이스에서 '댓글 닫기' 옵션을 찾으세요. 8. "댓글 닫기" 옵션을 클릭하여 댓글 닫기를 확인하세요.

Java는 다양한 애플리케이션을 개발하는 데 일반적으로 사용되는 프로그래밍 언어입니다. 그러나 다른 프로그래밍 언어와 마찬가지로 Java에도 보안 취약점과 위험이 있습니다. 일반적인 취약점 중 하나는 파일 포함 취약점(FileInclusionVulnerability)입니다. 이 문서에서는 이 취약점의 원리, 영향 및 방지 방법을 살펴봅니다. 파일 인클루젼 취약점은 프로그램 내에서 다른 파일을 동적으로 도입하거나 포함시키지만, 도입된 파일이 완전히 검증 및 보호되지 않는 취약점을 말합니다.

데이터 부족이 모델 학습에 미치는 영향에는 특정 코드 예제가 필요합니다. 기계 학습 및 인공 지능 분야에서 데이터는 모델 학습의 핵심 요소 중 하나입니다. 그러나 현실에서 우리가 자주 직면하는 문제는 데이터의 부족입니다. 데이터 희소성은 훈련 데이터의 양이 부족하거나 주석이 달린 데이터가 부족한 것을 의미합니다. 이 경우 모델 훈련에 일정한 영향을 미칩니다. 데이터 부족 문제는 주로 다음과 같은 측면에서 나타납니다. 과적합(Overfitting): 훈련 데이터의 양이 부족하면 모델이 과적합되기 쉽습니다. 과적합은 모델이 훈련 데이터에 과도하게 적응하는 것을 말합니다.

하드디스크의 배드섹터(Bad Sector)란 하드디스크의 물리적인 고장, 즉 하드디스크의 저장장치가 정상적으로 데이터를 읽거나 쓸 수 없는 상태를 의미합니다. 불량 섹터가 하드 드라이브에 미치는 영향은 매우 크며 데이터 손실, 시스템 충돌 및 하드 드라이브 성능 저하로 이어질 수 있습니다. 이 기사에서는 하드 드라이브 불량 섹터의 영향과 관련 솔루션을 자세히 소개합니다. 첫째, 하드 드라이브의 불량 섹터로 인해 데이터가 손실될 수 있습니다. 하드 디스크의 섹터에 불량 섹터가 있으면 해당 섹터의 데이터를 읽을 수 없어 파일이 손상되거나 액세스할 수 없게 됩니다. 불량 섹터가 위치한 섹터에 중요한 파일이 저장되어 있는 경우 이러한 상황은 특히 심각합니다.

일부 사용자는 저렴함을 위해 마이닝 카드 구매를 고려할 수도 있습니다. 그러나 일부 게이머는 마이닝 카드가 게임 플레이에 미치는 영향을 걱정합니다. . 마이닝 카드를 사용하여 게임을 할 때의 효과는 무엇입니까? 1. 마이닝 카드의 수명이 매우 짧고 그냥 플레이한 후에는 쓸모가 없게 될 가능성이 높기 때문에 마이닝 카드를 사용한 게임 플레이의 안정성은 보장할 수 없습니다. 2. 마이닝 카드는 기본적으로 원본 버전의 거세 버전이므로 장기간 마모로 인해 모든 측면에서 성능이 약할 수 있습니다. 3. 이와 같은 방법으로 이용자는 게임 플레이 시 게임의 효과를 모두 표현하지 못할 수도 있습니다. 4. 게다가 그래픽 카드의 전자 부품은 미리 노후화되며, 게임을 하는 것도 그래픽 카드를 소모하기 때문에 소모되는 정도가 크기 때문에 게임에 미치는 영향이 큽니다. 5. 일반적으로 게임을 할 때는 마이닝 카드를 사용합니다.

컴퓨터의 실행 품질은 기본적으로 그래픽 카드에 큰 영향을 미칩니다. 일부 사용자는 그래픽 카드에 대해 잘 모르고 그래픽 카드가 컴퓨터의 어떤 측면에 영향을 미치는지 정확히 알지 못합니다. 낮은 그래픽 카드 구성에 따른 몇 가지 효과를 소개하겠습니다. 낮은 그래픽 카드 구성의 영향은 무엇입니까? 답변: 1. 일부 대규모 3D 게임은 실행할 수 없습니다. 2. 일부 고화질 비디오를 재생할 때 컴퓨터는 큰 압박을 받게 됩니다. 3. 좀 더 전문적인 소프트웨어의 경우 도면 및 3D 모델 렌더링이 필요할 때 제대로 실행할 방법이 없습니다. 4. 그래픽 카드 구성이 낮으면 게임을 열 수 없거나 자주 충돌하고 정지되며 컴퓨터 화면도 흐려지거나 블루 스크린이 나타납니다. 5. 게임에서 가장 중요한 것은 그래픽 카드입니다. 많은 사진이 필요하기 때문입니다.
