Access注入 — Cookie注入
进行简单的手工测试可以看到有waf,给拦截了,然后我们试一下用cookie注入的方法javascript:alert(document.cookie="id="+escape("171 order by 10")); 可以看到页面返回正常,改成11数据库出错,说明是10个javascript:alert(document.cookie="
Accsess注入 — 偏移注入
因为被页面有waf,所以要用其他的方式注入,这里用的是cookie注入首先是一个正常的页面javascript:alert(document.cookie="id="+escape("105 order by 26")); 用这个来猜字段这时候返回这个页面看看,是直接访问ProductShow.asp,后面不需要加?id=105可以看到,页面是正常的,改成2
3.6、POST注入
post注入其实就是在登陆框进行注入,在用户名输入注入的语句用sqlmap可以看到post注入可以用好多的注入方式可以根据sqlmap的payload来修改进行手工注入第三关比较的难,第三关用前面两关的方法都不行,只能用盲注了可以看到页面没有返回信息admin') and if(length(database())>7,sleep(5),0)# 判断数据库名长度是否为大于7,如果大于
3.5、HEAD注入
在学习之前,需要先了解 UpdateXml() UPDATEXML (XML_document, XPath_string, new_value); 第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc 第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
3.4、延时注入
延时注入其实是属于盲注的一种,语句和布尔型的盲注其实是差不多的length() 返回字符串长度substr() 截取字符串ascii() 返回字符的ascii码sleep(x) 延迟多少秒后执行if(expr1,expr2,expr3) 判断 如果第一个语句正确就执行第二个,如果错误就执行第三个语句那么看一下注入的语句index.php?id=1' and if(ascii(substr(
3.3、宽字节
宽字节注入要的条件:用了addslashes函数或者开启php的gpc而且数据库还要是gbk的编码(php文件内的编码和数据库不一样)宽字节注入原理:前端输入%df%27的时候因为有addslashes函数,所以会被转移成%df%5c%27(%5c是反斜杠,%27是单引号'),而因为gbk的汉字编码内两个字节都会重新编码为一个汉字,然后数据库就会对查询的语句进行gbk编码,而%df%5c就
3.2 盲注
没学盲注之前感觉盲注好难,学了之后发现其实并不难,感觉挺简单的。首先是盲注要用到的常见的函数 length() 返回字符串长度substr() 截取字符串ascii() 返回字符的ascii码sleep(x) 延迟多少秒后执行if(expr1,expr2,expr3) 判断 如果第一个语句正确就执行第二个,如果错误就执行第三个语句盲注和普通的显错注入不一样,盲注分为布尔型注入和时间盲注,
3.1 显错注入
一个正常的页面简单手工测试测出可能存在注入点然后猜字段数 index.php?id=1' order by 3 --+ 猜出是3个接着查报错位置 index.php?id=0' union select 1,2,3 --+ (这里的0是为了让他出错才能执行后面的语句)可以看到爆出了2和3,接着查询数据库名 index
3.6、正则表达式【作业】
<?php$file=fopen("1.txt", "r"); //打开1.txt $str= fread($file, filesize("1.txt")); // 读取文件内容fclose($file); //关闭这个文件$str
3.5、PHP表单验证【作业】
<?php$user=($_POST['user']);$pass=($_POST['pass']);$conn=mysqli_connect('127.0.0.1','root','root','test');$waf='/and|or|union|select|where|/&