您现在的位置是:主页 > news > 怎么做网站下载链接/百度关键词优化点击 教程

怎么做网站下载链接/百度关键词优化点击 教程

admin2025/5/28 1:22:33news

简介怎么做网站下载链接,百度关键词优化点击 教程,做网站营销发布文章,公众平台申请如果要说11-20和1-10有什么不同的,我觉得最大的不同就是1-10都是GET型注入,而从11开始便是以POST注入为主以及其它几种注入点(referer、cookie等等)为辅了。 Less-11 考点:POST型注入、字符型注入(单引号)、联合注入 判断为单引号闭合 用与…

怎么做网站下载链接,百度关键词优化点击 教程,做网站营销发布文章,公众平台申请如果要说11-20和1-10有什么不同的,我觉得最大的不同就是1-10都是GET型注入,而从11开始便是以POST注入为主以及其它几种注入点(referer、cookie等等)为辅了。 Less-11 考点:POST型注入、字符型注入(单引号)、联合注入 判断为单引号闭合 用与…

如果要说11-20和1-10有什么不同的,我觉得最大的不同就是1-10都是GET型注入,而从11开始便是以POST注入为主以及其它几种注入点(referercookie等等)为辅了。

Less-11

考点:POST型注入、字符型注入(单引号)、联合注入

判断为单引号闭合

 用与GET型的联合注入相同的方法。

这个数据表的列只有两个与之前的三个有点不同

 随便在哪个点注入即可,利用之前讲过的查库、查表、查列、查字段。

Less-12

考点:POST型注入、字符型注入(双引号+小括号)、联合注入

用双引号测出错误,看到应该是双引号和小括号的闭合,我们构造闭合再注释之前的闭合。

 成功了,老方法,用order by 判断列数,用联合注入查库、查表、查列、查字段

 后面的操作和之前的一样。

Less-13

 考点:报错注入、POST型注入、字符型注入(单引号+小括号)

可以看到,是使用的单引号小括号闭合数据的,但是正确的输入没有回显,尝试使用报错注入,

有回显,我们利用这个查库、查表、查列、查字段。 

 查表时因为有多个表,如果没有用group_concat()我们需要用limit 限制数量查询。

Less-14

考点:报错注入、POST型注入、字符型注入(双引号)

用双引号把报错信息回显出来,我们看到应该是双引号闭合,测试一下报错注入能不能用

好吧,正常使用,那就和上一题的解法思路一模一样了。 

Less-15

考点:布尔盲注、POST型注入、字符型注入(单引号)

看看源码,正确和错误的sql语句回显的图片不同,而mysql_error()被注释了,所以这里无法使用报错注入,我们能利用到的就是盲注,因为正确和错误的回显不同,所以我们使用布尔盲注

可以看到sql语句是用单引号闭合的,

 果然,回显不同。我们使用之前做过的布尔盲注的方法,跑burp或者写脚本,也可以手注,还有一种方法就是跑sqlmap。我演示手注查库,

先用Length()确定库的大致长度

确定了库的长度为8,我们就查库的ASCII码,从第一位到第八位查出来,

 先用大于小于号确定大体范围,再用等于号判断是否等于,

所以ASCII码115为字符s,再查一个,

经过测试得到ASCII码为101对应的字符为e,以此类推,我们的库就可以查出,表、列、字段也可如此。

Less-16

 考点:布尔盲注、POST型注入、字符型注入(双引号+小括号)

 

 除了闭合与上一题不同,其解法和上一题一模一样,就不细说了。

Less-17

考点:POST型注入、报错注入、字符型注入(单引号)、代码审计

<?php
//including the Mysql connect parameters.
include("../sql-connections/sql-connect.php");
error_reporting(0);function check_input($value){if(!empty($value)){// truncation (see comments)$value = substr($value,0,15);}// Stripslashes if magic quotes enabledif (get_magic_quotes_gpc()){$value = stripslashes($value);}// Quote if not a numberif (!ctype_digit($value)){$value = "'" . mysql_real_escape_string($value) . "'";}else{$value = intval($value);}return $value;}// take the variables
if(isset($_POST['uname']) && isset($_POST['passwd'])){
//making sure uname is not injectable
$uname=check_input($_POST['uname']);  $passwd=$_POST['passwd'];//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'User Name:'.$uname."\n");
fwrite($fp,'New Password:'.$passwd."\n");
fclose($fp);// connectivity 
@$sql="SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";$result=mysql_query($sql);
$row = mysql_fetch_array($result);
//echo $row;if($row){//echo '<font color= "#0000ff">';	$row1 = $row['username'];  	//echo 'Your Login name:'. $row1;$update="UPDATE users SET password = '$passwd' WHERE username='$row1'";mysql_query($update);echo "<br>";if (mysql_error()){echo '<font color= "#FFFF00" font size = 3 >';print_r(mysql_error());echo "</br></br>";echo "</font>";}else{echo '<font color= "#FFFF00" font size = 3 >';//echo " You password has been successfully updated " ;		echo "<br>";echo "</font>";}echo '<img src="../images/flag1.jpg"   />';	//echo 'Your Password:' .$row['password'];echo "</font>";}else  {echo '<font size="4.5" color="#FFFF00">';//echo "Bug off you Silly Dumb hacker";echo "</br>";echo '<img src="../images/slap1.jpg"   />';echo "</font>";  }
}?>

 这个题目盲做很难受,所以我们在这里需要分析源代码,源代码我们挑几个点看就好了,get_magic_quotes_gpc()函数是为后面会出现的宽字节注入做铺垫的,我们可以看到uname参数被传入了check_input()函数中做了检验,当然passwd,并没有,如果想从uname下手很麻烦

function check_input($value){if(!empty($value)){// truncation (see comments)$value = substr($value,0,15);}// Stripslashes if magic quotes enabledif (get_magic_quotes_gpc()){$value = stripslashes($value);}// Quote if not a numberif (!ctype_digit($value)){$value = "'" . mysql_real_escape_string($value) . "'";}else{$value = intval($value);}return $value;}// take the variables
if(isset($_POST['uname']) && isset($_POST['passwd'])){
//making sure uname is not injectable
$uname=check_input($_POST['uname']);  $passwd=$_POST['passwd'];

相比于uname,我们的passwd就是一个没有限制的变量,我们对它下手,而且根据代码审计我们发现报错注入应该是可以使用的,

if (mysql_error()){echo '<font color= "#FFFF00" font size = 3 >';print_r(mysql_error());echo "</br></br>";echo "</font>";}

可以看到,在passwd注入成功,我们就可以用查表查列查字段执行了。但是你们可以在uname试一下,肯定不可能成功。 

Less-18

考点:User-Agent注入、报错注入、巧用闭合

看过源码,发现passwduname这波都被过滤的很严重,所以基本不能使用了,

	$uname = check_input($_POST['uname']);$passwd = check_input($_POST['passwd']);

但是有个东西很关键,

$uagent = $_SERVER['HTTP_USER_AGENT'];$insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)";print_r(mysql_error());

这三行代码,很关键,第一行uagent没有限制,我们可以通过在http头部控制User-Agent控制HTTP_USER_AGENT这个全局变量。

第二行把uagen传入到数据库中去,而且第三行开启了报错,所以我们可以通过利用报错注入对User-Agent大胆的注入使其实现报错注入,但是因为限制了三个参数,后面两个我们管不着,所以我们想办法让第一个参数自然闭合,怎么做呢?看下面我的payload就会明白了。

然后就实现了报错注入,后面的查表、查列、查字段就不演示了。 

Less-19

考点:referer注入、字符型注入、报错注入

	$uagent = $_SERVER['HTTP_REFERER'];$IP = $_SERVER['REMOTE_ADDR'];

全局变量HTTP_REFERER来自referer字段,我们只需要改变http请求的referer值即可控制uagent变量,则又回到了上一题的方法了,与上一题的解法也只是大同小异罢了。

注意看我注入点在哪,后面的操作还是一样,简单的查表、查列、查字段

Less-20

考点:cookie注入、联合注入、字符型注入

这个cookie的删除就提示我们了,他把账号和密码存在cookie中,我们可以尝试修改cookie的值来达到注入的目的,先看看cookie的值,

 cookie果然有,所以我们在这里修改cookie的值,修改完后刷新一下界面即可执行cookie值。

单引号闭合,

有账号密码的回显,猜测多半是联合注入了。

中间省略了用order by查列数量,自行操作,后面的就是常规的查库、查表、查列、查字段。